summaryrefslogtreecommitdiffstats
path: root/cui/qa/uitest/dialogs/chardlg.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cui/qa/uitest/dialogs/chardlg.py167
1 files changed, 167 insertions, 0 deletions
diff --git a/cui/qa/uitest/dialogs/chardlg.py b/cui/qa/uitest/dialogs/chardlg.py
new file mode 100644
index 000000000..c52664f36
--- /dev/null
+++ b/cui/qa/uitest/dialogs/chardlg.py
@@ -0,0 +1,167 @@
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.framework import UITestCase
+from uitest.uihelper.common import select_pos
+from uitest.uihelper.common import get_state_as_dict
+from uitest.uihelper.common import select_by_text
+
+# Test for cui/source/tabpages/chardlg.cxx.
+class Test(UITestCase):
+
+ def testSvxCharEffectsPage(self):
+ # Start Impress.
+ with self.ui_test.create_doc_in_start_center("impress") as component:
+ template = self.xUITest.getTopFocusWindow()
+ self.ui_test.close_dialog_through_button(template.getChild("close"))
+ doc = self.xUITest.getTopFocusWindow()
+ editWin = doc.getChild("impress_win")
+ # Select the title shape.
+ editWin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"}))
+ editWin.executeAction("TYPE", mkPropertyValues({"TEXT": "t"}))
+ self.xUITest.executeCommand(".uno:SelectAll")
+
+ # Now use Format -> Character.
+ with self.ui_test.execute_dialog_through_command(".uno:FontDialog") as xDialog:
+ xTabs = xDialog.getChild("tabcontrol")
+ # Select RID_SVXPAGE_CHAR_EFFECTS.
+ select_pos(xTabs, "1")
+ xFontTransparency = xDialog.getChild("fonttransparencymtr")
+ for _ in range(5):
+ xFontTransparency.executeAction("UP", tuple())
+
+ # Verify the result.
+ drawPage = component.getDrawPages()[0]
+ shape = drawPage[0]
+
+ # Without the accompanying fix in place, this test would have failed with:
+ # AssertionError: 100 != 5
+ # i.e. the dialog did not set transparency to 5%, instead it left the character color at
+ # COL_AUTO.
+ self.assertEqual(shape.CharTransparence, 5)
+
+ def testSvxCharEffectsPageTheme(self):
+ # Given a document with a document theme:
+ # Start Impress.
+ with self.ui_test.create_doc_in_start_center("impress") as component:
+ template = self.xUITest.getTopFocusWindow()
+ self.ui_test.close_dialog_through_button(template.getChild("close"))
+ doc = self.xUITest.getTopFocusWindow()
+ editWin = doc.getChild("impress_win")
+
+ # Set theme colors.
+ drawPage = component.getDrawPages().getByIndex(0)
+ master = drawPage.MasterPage
+ theme = mkPropertyValues({
+ "Name": "nameA",
+ "ColorSchemeName": "colorSetA",
+ "ColorScheme": tuple([
+ 0x000000, # dk1
+ 0x000000, # lt1
+ 0x000000, # dk2
+ 0x000000, # lt2
+ 0x000000, # accent1
+ 0x000000, # accent2
+ 0x000000, # accent3
+ 0x000000, # accent4
+ 0x000000, # accent5
+ 0x000000, # accent6
+ 0x000000, # hlink
+ 0x000000, # folHlink
+ ])
+ })
+ master.Theme = theme
+
+ # Select the title shape.
+ editWin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"}))
+ editWin.executeAction("TYPE", mkPropertyValues({"TEXT": "t"}))
+ self.xUITest.executeCommand(".uno:SelectAll")
+
+ # Now use Format -> Character.
+ with self.ui_test.execute_dialog_through_command(".uno:FontDialog") as xDialog:
+ xTabs = xDialog.getChild("tabcontrol")
+ # Select RID_SVXPAGE_CHAR_EFFECTS.
+ select_pos(xTabs, "1")
+
+ # When setting the shape text color to accent 1:
+ accent1 = xDialog.getChild("fontcolorlb")
+ accent1.executeAction("OPENLIST", tuple())
+ floatWindow = self.xUITest.getFloatWindow()
+ paletteSelector = floatWindow.getChild("palette_listbox")
+ select_by_text(paletteSelector, "Theme colors")
+ colorSet = floatWindow.getChild("colorset")
+ # 4 would be accent1, +12 is the first from the effect variants.
+ colorSet.executeAction("CHOOSE", mkPropertyValues({"POS": "16"}))
+
+ # Then make sure the doc model has the correct color theme index:
+ drawPage = component.getDrawPages().getByIndex(0)
+ shape = drawPage.getByIndex(0)
+ paragraphs = shape.createEnumeration()
+ paragraph = paragraphs.nextElement()
+ portions = paragraph.createEnumeration()
+ portion = portions.nextElement()
+
+ # Without the accompanying fix in place, this test would have failed with:
+ # AssertionError: -1 != 4
+ # i.e. no theme index was set, instead of accent1 (index into the above color scheme).
+ self.assertEqual(portion.CharColorTheme, 4)
+
+ # Then make sure that '80% lighter' is lum-mod=2000 and lum-off=8000:
+ # Without the accompanying fix in place, this test would have failed with:
+ # AssertionError: 10000 != 2000
+ # i.e. the effects where not applied, luminance modulation was the default instead of a
+ # custom value.
+ self.assertEqual(portion.CharColorLumMod, 2000)
+ self.assertEqual(portion.CharColorLumOff, 8000)
+
+ def testSvxCharEffectsPageWriter(self):
+ # Start Writer.
+ with self.ui_test.create_doc_in_start_center("writer") as component:
+ doc = self.xUITest.getTopFocusWindow()
+ editWin = doc.getChild("writer_edit")
+ # Type a character and select it.
+ editWin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"}))
+ editWin.executeAction("TYPE", mkPropertyValues({"TEXT": "t"}))
+ self.xUITest.executeCommand(".uno:SelectAll")
+
+ # Now use Format -> Character.
+ with self.ui_test.execute_dialog_through_command(".uno:FontDialog") as xDialog:
+ xTabs = xDialog.getChild("tabcontrol")
+ # Select RID_SVXPAGE_CHAR_EFFECTS.
+ select_pos(xTabs, "1")
+ xFontTransparency = xDialog.getChild("fonttransparencymtr")
+ # Without the accompanying fix in place, this test would have failed with:
+ # AssertionError: 'false' != 'true'
+ # i.e. the transparency widget was hidden.
+ self.assertEqual(get_state_as_dict(xFontTransparency)["Visible"], "true")
+ for _ in range(5):
+ xFontTransparency.executeAction("UP", tuple())
+
+ # Verify the result.
+ paragraph = component.Text.createEnumeration().nextElement()
+
+ self.assertEqual(paragraph.CharTransparence, 5)
+
+ def testSvxCharEffectsPageWriterAutomatic(self):
+ # Start Writer.
+ with self.ui_test.create_doc_in_start_center("writer"):
+ doc = self.xUITest.getTopFocusWindow()
+ editWin = doc.getChild("writer_edit")
+
+ # Use Format -> Character.
+ with self.ui_test.execute_dialog_through_command(".uno:FontDialog") as xDialog:
+ xTabs = xDialog.getChild("tabcontrol")
+ # Select RID_SVXPAGE_CHAR_EFFECTS.
+ select_pos(xTabs, "1")
+ xFontColorLB = xDialog.getChild("fontcolorlb")
+ # Without the accompanying fix in place, this test would have failed with:
+ # AssertionError: 'White' != 'Automatic'
+ # i.e. the auto color lost its alpha component and appeared as white.
+ self.assertEqual(get_state_as_dict(xFontColorLB)["Text"], "Automatic")
+
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab: