diff options
author | jmzambon <jeanmarczambon@gmail.com> | 2017-06-15 18:21:14 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-06-19 16:08:48 +0200 |
commit | 9d221db01337957ec161a76b5dd7db9d6b384c89 (patch) | |
tree | 660668d826bca3dfa7465705ffe08bd59a7b7275 /sw/qa/python | |
parent | 60954fc67a022565741c4ccb4667581a5a790a10 (diff) |
tdf#97362: TextPortionEnumerationTest partially migrated to python (part 2)
Add tests:
- test_meta
- test_meta_empty
- test_meta_field
- test_meta_field_empty
- test_bookmark1
- test_bookmark2
- test_refmark2
- test_refmark3
- test_toxmark2
- test_toxmark3
Change-Id part 1: I0920517b5e8806a5fc46708822fed33006f03fd5
Change-Id: If8e50aa036f10caf1b460c041dd7bce068f9cd7b
Reviewed-on: https://gerrit.libreoffice.org/38842
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'sw/qa/python')
-rw-r--r-- | sw/qa/python/text_portion_enumeration_test.py | 216 |
1 files changed, 201 insertions, 15 deletions
diff --git a/sw/qa/python/text_portion_enumeration_test.py b/sw/qa/python/text_portion_enumeration_test.py index 9e616441191c..d55080e52455 100644 --- a/sw/qa/python/text_portion_enumeration_test.py +++ b/sw/qa/python/text_portion_enumeration_test.py @@ -379,6 +379,15 @@ class RubyNode(TreeNode): return self._dup(RubyNode, self.ruby) +class MetaFieldNode(MetaNode): + def __init__(self, xmlid): + super().__init__(xmlid) + self.nodetype = "MetadataField" + + def dup(self): + return self._dup(MetaFieldNode, self.xmlid) + + class Inserter(): def __init__(self, xDoc): @@ -464,6 +473,28 @@ class Inserter(): xCursor.RubyText = rubytext + def insertmeta(self, xCursor, xmlid): + xContent = self.makemeta() + xContent.attach(xCursor) + xContent.MetadataReference = xmlid + return xContent + + def makemeta(self): + xMeta = self.xDoc.createInstance("com.sun.star.text.InContentMetadata") + return xMeta + + def insertmetafield(self, xCursor, xmlid): + xContent = self.makemetafield() + xContent.attach(xCursor) + xContent.MetadataReference = xmlid + return xContent + + def makemetafield(self): + xMeta = self.xDoc.createInstance( + "com.sun.star.text.textfield.MetadataField") + return xMeta + + class TreeInserter(Inserter): def __init__(self, xDoc): @@ -540,6 +571,16 @@ class TreeInserter(Inserter): self.insertchildren(node.createenumeration()) xParaCursor = self.mkcursor(xRange) self.insertruby(xParaCursor, node.ruby) + elif type_ == "InContentMetadata": + xRange = xCursor.getStart() + self.insertchildren(node.createenumeration()) + xParaCursor = self.mkcursor(xRange) + self.insertmeta(xParaCursor, node.xmlid) + elif type_ == "MetadataField": + xRange = xCursor.getStart() + self.insertchildren(node.createenumeration()) + xParaCursor = self.mkcursor(xRange) + self.insertmetafield(xParaCursor, node.xmlid) elif type_ == "SoftPageBreak": raise RuntimeError("sorry, cannot test SoftPageBreak") else: @@ -656,6 +697,14 @@ class EnumConverter(): node = self._stack.pop() assert (isinstance(node, RubyNode), "stack error: Ruby expected; is: {}".format(str(node))) + elif type_ == "InContentMetadata": + xMeta = xPortion.InContentMetadata + xmlid = xMeta.MetadataReference + node = MetaNode(xmlid) + self._stack.append(node) + xEnumChildren = xMeta.createEnumeration() + node2 = self.convertchildren(xEnumChildren) + assert (node2 is node), "stack error: meta" elif type_ == "SoftPageBreak": node = SoftPageBreakNode() else: @@ -825,21 +874,21 @@ class TextPortionEnumerationTest(unittest.TestCase): root.appendchild(txtf) self.dotest(root) - ## FIXME this is converted to a text portion: ControlCharacter is obsolete - # def test_control_char(self): - # root = TreeNode() - # cchr = ControlCharacterNode(HARD_HYPHEN) - # root.appendchild(cchr) - # self.dotest(root) - - ## FIXME: insert a soft page break: not done - # def test_soft_page_break(self): - # root = TreeNode() - # spbk =SoftPageBreakNode() - # text = TextNode("abc") - # root.appendchild(spbk) - # root.appendchild(text) - # self.dotest(root) + @unittest.skip("FIXME this is converted to a text portion: ControlCharacter is obsolete") + def test_control_char(self): + root = TreeNode() + cchr = ControlCharacterNode(HARD_HYPHEN) + root.appendchild(cchr) + self.dotest(root) + + @unittest.skip("FIXME: insert a soft page break: not done") + def test_soft_page_break(self): + root = TreeNode() + spbk =SoftPageBreakNode() + text = TextNode("abc") + root.appendchild(spbk) + root.appendchild(text) + self.dotest(root) def test_footnote(self): name = self.mkname("ftn") @@ -979,6 +1028,143 @@ class TextPortionEnumerationTest(unittest.TestCase): root.appendchild(ruby) self.dotest(root) + def test_meta(self): + id = StringPair("content.xml", self.mkname("id")) + root = TreeNode() + meta = MetaNode(id) + text = TextNode("abc") + root.appendchild(TextNode("123")) + meta.appendchild(text) + root.appendchild(meta) + self.dotest(root) + + def test_meta_empty(self): + id = StringPair("content.xml", self.mkname("id")) + root = TreeNode() + meta = MetaNode(id) + root.appendchild(meta) + self.dotest(root) + + def test_meta_field(self): + id = StringPair("content.xml", self.mkname("id")) + root = TreeNode() + meta = MetaFieldNode(id) + text = TextNode("abc") + root.appendchild(TextNode("123")) + meta.appendchild(text) + root.appendchild(meta) + self.dotest(root) + + def test_meta_field_empty(self): + id = StringPair("content.xml", self.mkname("id")) + root = TreeNode() + meta = MetaFieldNode(id) + root.appendchild(meta) + self.dotest(root) + + def test_bookmark1(self): + name1 = self.mkname("mark") + name2 = self.mkname("mark") + name3 = self.mkname("mark") + root = TreeNode() + root.appendchild(BookmarkStartNode(name1)) + root.appendchild(BookmarkNode(name2)) + root.appendchild(BookmarkStartNode(name3)) + root.appendchild(TextNode("abc")) + root.appendchild(BookmarkEndNode(name1)) + root.appendchild(TextNode("de")) + root.appendchild(BookmarkEndNode(name3)) + self.dotest(root) + + def test_bookmark2(self): + name1 = self.mkname("mark") + name2 = self.mkname("mark") + name3 = self.mkname("mark") + root = TreeNode() + root.appendchild(BookmarkStartNode(name1)) + root.appendchild(TextNode("abc")) + root.appendchild(BookmarkNode(name2)) + root.appendchild(BookmarkStartNode(name3)) + root.appendchild(BookmarkEndNode(name1)) + root.appendchild(TextNode("de")) + root.appendchild(BookmarkEndNode(name3)) + self.dotest(root) + + def test_refmark2(self): + name1 = self.mkname("refmark") + root = TreeNode() + root.appendchild(ReferenceMarkStartNode(name1)) + root.appendchild(TextNode("abc")) + # BUG: #i102541# (this is actually not unoportenum's fault) + root.appendchild(ReferenceMarkEndNode(name1)) + root.appendchild(TextNode("de")) + self.dotest(root) + + def test_refmark3(self): + # BUG: #i107672# (non-deterministic; depends on pointer ordering) + name1 = self.mkname("refmark") + name2 = self.mkname("refmark") + name3 = self.mkname("refmark") + name4 = self.mkname("refmark") + name5 = self.mkname("refmark") + name6 = self.mkname("refmark") + name7 = self.mkname("refmark") + root = TreeNode() + root.appendchild(ReferenceMarkStartNode(name1)) + root.appendchild(ReferenceMarkStartNode(name2)) + root.appendchild(ReferenceMarkStartNode(name3)) + root.appendchild(ReferenceMarkStartNode(name4)) + root.appendchild(ReferenceMarkStartNode(name5)) + root.appendchild(ReferenceMarkStartNode(name6)) + root.appendchild(ReferenceMarkStartNode(name7)) + root.appendchild(TextNode("abc")) + root.appendchild(ReferenceMarkEndNode(name7)) + root.appendchild(ReferenceMarkEndNode(name6)) + root.appendchild(ReferenceMarkEndNode(name5)) + root.appendchild(ReferenceMarkEndNode(name4)) + root.appendchild(ReferenceMarkEndNode(name3)) + root.appendchild(ReferenceMarkEndNode(name2)) + root.appendchild(ReferenceMarkEndNode(name1)) + root.appendchild(TextNode("de")) + self.dotest(root) + + def test_toxmark2(self): + name1 = self.mkname("toxmark") + root = TreeNode() + root.appendchild(DocumentIndexMarkStartNode(name1)) + root.appendchild(TextNode("abc")) + root.appendchild(DocumentIndexMarkEndNode(name1)) + root.appendchild(TextNode("de")) + self.dotest(root) + + def test_toxmark3(self): + # BUG: #i107672# (non-deterministic; depends on pointer ordering) + name1 = self.mkname("toxmark") + name2 = self.mkname("toxmark") + name3 = self.mkname("toxmark") + name4 = self.mkname("toxmark") + name5 = self.mkname("toxmark") + name6 = self.mkname("toxmark") + name7 = self.mkname("toxmark") + root = TreeNode() + root.appendchild(DocumentIndexMarkStartNode(name1)) + root.appendchild(DocumentIndexMarkStartNode(name2)) + root.appendchild(DocumentIndexMarkStartNode(name3)) + root.appendchild(DocumentIndexMarkStartNode(name4)) + root.appendchild(DocumentIndexMarkStartNode(name5)) + root.appendchild(DocumentIndexMarkStartNode(name6)) + root.appendchild(DocumentIndexMarkStartNode(name7)) + root.appendchild(TextNode("abc")) + root.appendchild(DocumentIndexMarkEndNode(name7)) + root.appendchild(DocumentIndexMarkEndNode(name6)) + root.appendchild(DocumentIndexMarkEndNode(name5)) + root.appendchild(DocumentIndexMarkEndNode(name4)) + root.appendchild(DocumentIndexMarkEndNode(name3)) + root.appendchild(DocumentIndexMarkEndNode(name2)) + root.appendchild(DocumentIndexMarkEndNode(name1)) + root.appendchild(TextNode("de")) + self.dotest(root) + def dotest(self, intree, insert=True): xDoc = self.__class__.xDoc self._dotest(xDoc, intree, insert) |