def testMain(self): '''Test Page object''' TestPath.runTest(self) tree = ParseTree().fromstring('''\ <zim-tree> <link href='foo:bar'>foo:bar</link> <link href='bar'>bar</link> <tag name='baz'>@baz</tag> </zim-tree> ''' ) page = self.generator('Foo') page.set_parsetree(tree) links = list(page.get_links()) self.assertEqual(links, [ ('page', 'foo:bar', {}), ('page', 'bar', {}), ] ) tags = list(page.get_tags()) self.assertEqual(tags, [ ('baz', {'name': 'baz'}), ]) self.assertEqual(page.get_parsetree().tostring(), tree.tostring()) # ensure we didn't change the tree # TODO test get / set parse tree with and without source tree = ParseTree().fromstring('<zim-tree></zim-tree>') self.assertFalse(tree.hascontent) page.set_parsetree(tree) self.assertFalse(page.hascontent)
def runTest(self): '''Test Page object''' TestPath.runTest(self) tree = ParseTree().fromstring('''\ <zim-tree> <link href='foo:bar'>foo:bar</link> <link href='bar'>bar</link> </zim-tree> ''' ) page = Page(Path('Foo')) page.readonly = False page.set_parsetree(tree) links = list(page.get_links()) self.assertEqual(links, [ ('page', 'foo:bar', {}), ('page', 'bar', {}), ] ) self.assertEqual(page.get_parsetree().tostring(), tree.tostring()) # ensure we didn't change the tree # TODO test get / set parse tree with and without source tree = ParseTree().fromstring('<zim-tree></zim-tree>') self.assertFalse(tree.hascontent) page.set_parsetree(tree) self.assertFalse(page.hascontent)
def testSortListItems(self): from zim.formats import ParseTree template = '<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<zim-tree><p><ul>%s</ul></p></zim-tree>' tree = ParseTree().fromstring( template % '<li>B list item</li><li>C list item</li><li>A list item</li>') self.buffer.set_parsetree(tree) self.select_range(0, 42) self.extension.sort_selected_lines() tree = self.buffer.get_parsetree() self.assertEqual( tree.tostring(), template % '<li bullet="*">A list item</li><li bullet="*">B list item</li><li bullet="*">C list item</li>' )