1# 2# This Source Code Form is subject to the terms of the Mozilla Public 3# License, v. 2.0. If a copy of the MPL was not distributed with this 4# file, You can obtain one at http://mozilla.org/MPL/2.0/. 5# 6 7from uitest.framework import UITestCase 8from uitest.uihelper.common import select_pos, get_state_as_dict 9from com.sun.star.uno import RuntimeException 10from com.sun.star.awt.GradientStyle import LINEAR 11from com.sun.star.drawing.HatchStyle import SINGLE 12from com.sun.star.drawing.BitmapMode import REPEAT 13from com.sun.star.drawing.RectanglePoint import MIDDLE_MIDDLE 14 15from libreoffice.uno.propertyvalue import mkPropertyValues 16 17class WriterPageDialog(UITestCase): 18 19 def launch_dialog_and_select_tab(self, tab): 20 self.ui_test.execute_dialog_through_command(".uno:PageDialog") 21 22 xDialog = self.xUITest.getTopFocusWindow() 23 tabcontrol = xDialog.getChild("tabcontrol") 24 select_pos(tabcontrol, str(tab)) 25 26 return xDialog 27 28 def click_button(self, dialog, button): 29 xButton = dialog.getChild(button) 30 xButton.executeAction("CLICK", tuple()) 31 32 def check_default_area(self, btn): 33 document = self.ui_test.get_component() 34 if btn == 'btnnone': 35 self.assertEqual( 36 document.StyleFamilies.PageStyles.Standard.BackColor, -1) 37 elif btn == 'btncolor': 38 self.assertEqual( 39 document.StyleFamilies.PageStyles.Standard.BackColor, 7512015) 40 self.assertEqual( 41 document.StyleFamilies.PageStyles.Standard.FillColor, 7512015) 42 self.assertEqual( 43 document.StyleFamilies.PageStyles.Standard.FillColor, 7512015) 44 elif btn == 'btngradient': 45 self.assertEqual( 46 document.StyleFamilies.PageStyles.Standard.FillGradient.Style, LINEAR) 47 self.assertEqual( 48 document.StyleFamilies.PageStyles.Standard.FillGradient.StartColor, 14543051) 49 self.assertEqual( 50 document.StyleFamilies.PageStyles.Standard.FillGradient.Angle, 300) 51 self.assertEqual( 52 document.StyleFamilies.PageStyles.Standard.FillGradient.Border, 0) 53 self.assertEqual( 54 document.StyleFamilies.PageStyles.Standard.FillGradient.XOffset, 0) 55 self.assertEqual( 56 document.StyleFamilies.PageStyles.Standard.FillGradient.YOffset, 0) 57 self.assertEqual( 58 document.StyleFamilies.PageStyles.Standard.FillGradient.StartIntensity, 100) 59 self.assertEqual( 60 document.StyleFamilies.PageStyles.Standard.FillGradient.EndIntensity, 100) 61 self.assertEqual( 62 document.StyleFamilies.PageStyles.Standard.FillGradientName, 'Pastel Bouquet') 63 elif btn == 'btnhatch': 64 self.assertEqual( 65 document.StyleFamilies.PageStyles.Standard.FillHatch.Style, SINGLE ) 66 self.assertEqual( 67 document.StyleFamilies.PageStyles.Standard.FillHatch.Color, 0) 68 self.assertEqual( 69 document.StyleFamilies.PageStyles.Standard.FillHatch.Distance, 102) 70 self.assertEqual( 71 document.StyleFamilies.PageStyles.Standard.FillHatch.Angle, 0) 72 self.assertEqual( 73 document.StyleFamilies.PageStyles.Standard.FillHatchName, 'Black 0 Degrees') 74 elif btn == 'btnbitmap': 75 self.assertEqual( 76 document.StyleFamilies.PageStyles.Standard.FillBitmapMode, REPEAT) 77 self.assertEqual( 78 document.StyleFamilies.PageStyles.Standard.FillBitmapPositionOffsetX, 0) 79 self.assertEqual( 80 document.StyleFamilies.PageStyles.Standard.FillBitmapPositionOffsetY, 0) 81 self.assertEqual( 82 document.StyleFamilies.PageStyles.Standard.FillBitmapRectanglePoint, MIDDLE_MIDDLE) 83 self.assertEqual( 84 document.StyleFamilies.PageStyles.Standard.FillBitmapStretch, False) 85 self.assertEqual( 86 document.StyleFamilies.PageStyles.Standard.FillBitmapTile, True) 87 self.assertEqual( 88 document.StyleFamilies.PageStyles.Standard.FillBitmapOffsetX, 0) 89 self.assertEqual( 90 document.StyleFamilies.PageStyles.Standard.FillBitmapOffsetY, 0) 91 self.assertEqual( 92 document.StyleFamilies.PageStyles.Standard.FillBitmapLogicalSize, True) 93 self.assertEqual( 94 document.StyleFamilies.PageStyles.Standard.FillBitmapSizeX, 0) 95 self.assertEqual( 96 document.StyleFamilies.PageStyles.Standard.FillBitmapSizeY, 0) 97 self.assertEqual( 98 document.StyleFamilies.PageStyles.Standard.FillBitmapName, 'Painted White') 99 elif btn == 'btnpattern': 100 self.assertEqual( 101 document.StyleFamilies.PageStyles.Standard.FillBitmapMode, REPEAT) 102 self.assertEqual( 103 document.StyleFamilies.PageStyles.Standard.FillBitmapPositionOffsetX, 0) 104 self.assertEqual( 105 document.StyleFamilies.PageStyles.Standard.FillBitmapPositionOffsetY, 0) 106 self.assertEqual( 107 document.StyleFamilies.PageStyles.Standard.FillBitmapRectanglePoint, MIDDLE_MIDDLE) 108 self.assertEqual( 109 document.StyleFamilies.PageStyles.Standard.FillBitmapStretch, False) 110 self.assertEqual( 111 document.StyleFamilies.PageStyles.Standard.FillBitmapTile, True) 112 self.assertEqual( 113 document.StyleFamilies.PageStyles.Standard.FillBitmapOffsetX, 0) 114 self.assertEqual( 115 document.StyleFamilies.PageStyles.Standard.FillBitmapOffsetY, 0) 116 self.assertEqual( 117 document.StyleFamilies.PageStyles.Standard.FillBitmapLogicalSize, True) 118 self.assertEqual( 119 document.StyleFamilies.PageStyles.Standard.FillBitmapSizeX, 0) 120 self.assertEqual( 121 document.StyleFamilies.PageStyles.Standard.FillBitmapSizeY, 0) 122 self.assertEqual( 123 document.StyleFamilies.PageStyles.Standard.FillBitmapName, '5 Percent') 124 125 def test_area_tab(self): 126 127 self.ui_test.create_doc_in_start_center("writer") 128 129 buttons = ['btnbitmap', 'btncolor', 'btngradient', 'btnhatch', 'btnpattern'] 130 for index, button in enumerate(buttons): 131 132 xDialog = self.launch_dialog_and_select_tab(2) 133 134 self.click_button(xDialog, button) 135 136 self.click_button(xDialog, 'ok') 137 138 self.check_default_area(button) 139 140 xDialog = self.launch_dialog_and_select_tab(2) 141 142 self.click_button(xDialog, 'btnnone') 143 144 self.click_button(xDialog, 'ok') 145 146 self.check_default_area('btnnone') 147 148 self.ui_test.close_doc() 149 150 def test_paper_format(self): 151 152 lPaperFormat = ["A6", "A5", "A4", "A3", "B6 (ISO)", "B5 (ISO)", "B4 (ISO)", "Letter", 153 "Legal", "Long Bond", "Tabloid", "B6 (JIS)", "B5 (JIS)", "B4 (JIS)", "16 Kai", 154 "32 Kai", "Big 32 Kai", "User", "DL Envelope", "C6 Envelope", "C6/5 Envelope", 155 "C5 Envelope", "C4 Envelope", "#6¾ Envelope", "#7¾ (Monarch) Envelope", 156 "#9 Envelope", "#10 Envelope", "#11 Envelope", "#12 Envelope", "Japanese Postcard"] 157 158 self.ui_test.create_doc_in_start_center("writer") 159 160 for i in range(30): 161 with self.subTest(i=i): 162 xDialog = self.launch_dialog_and_select_tab(1) 163 164 xFormatList = xDialog.getChild("comboPageFormat") 165 select_pos(xFormatList, str(i)) 166 167 self.assertEqual( 168 get_state_as_dict(xFormatList)["SelectEntryText"], lPaperFormat[i]) 169 170 self.click_button(xDialog, 'ok') 171 172 self.ui_test.close_doc() 173 174 def test_orientation(self): 175 176 self.ui_test.create_doc_in_start_center("writer") 177 178 document = self.ui_test.get_component() 179 180 self.assertEqual( 181 document.StyleFamilies.PageStyles.Standard.IsLandscape, False) 182 183 xDialog = self.launch_dialog_and_select_tab(1) 184 185 self.click_button(xDialog, 'radiobuttonLandscape') 186 187 self.click_button(xDialog, 'ok') 188 189 self.assertEqual( 190 document.StyleFamilies.PageStyles.Standard.IsLandscape, True) 191 192 xDialog = self.launch_dialog_and_select_tab(1) 193 194 self.click_button(xDialog, 'radiobuttonPortrait') 195 196 self.click_button(xDialog, 'ok') 197 198 self.assertEqual( 199 document.StyleFamilies.PageStyles.Standard.IsLandscape, False) 200 201 self.ui_test.close_doc() 202 203 def test_text_direction(self): 204 205 lTextDirection = ['Left-to-right (horizontal)', 'Right-to-left (horizontal)', 206 'Right-to-left (vertical)', 'Left-to-right (vertical)'] 207 208 self.ui_test.create_doc_in_start_center("writer") 209 210 document = self.ui_test.get_component() 211 212 for i in range(4): 213 with self.subTest(i=i): 214 xDialog = self.launch_dialog_and_select_tab(1) 215 216 xTextDirectionList = xDialog.getChild("comboTextFlowBox") 217 select_pos(xTextDirectionList, str(i)) 218 219 self.assertEqual( 220 get_state_as_dict(xTextDirectionList)["SelectEntryText"], lTextDirection[i]) 221 222 self.click_button(xDialog, 'ok') 223 224 self.assertEqual( 225 document.StyleFamilies.PageStyles.Standard.WritingMode, i) 226 227 self.ui_test.close_doc() 228 229 def test_cancel_button_page_dialog(self): 230 self.ui_test.create_doc_in_start_center("writer") 231 232 self.ui_test.execute_dialog_through_command(".uno:PageDialog") 233 xDialog = self.xUITest.getTopFocusWindow() 234 xCancelBtn = xDialog.getChild("cancel") 235 self.ui_test.close_dialog_through_button(xCancelBtn) 236 237 self.ui_test.close_doc() 238 239# vim: set shiftwidth=4 softtabstop=4 expandtab: 240