def test_tdf39022_replace_regexp(self): writer_doc = self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "test number1 testnot") self.ui_test.execute_modeless_dialog_through_command(".uno:SearchDialog") xDialog = self.xUITest.getTopFocusWindow() searchterm = xDialog.getChild("searchterm") searchterm.executeAction("TYPE", mkPropertyValues({"TEXT":"T(est|other)\>"})) #find replaceterm = xDialog.getChild("replaceterm") replaceterm.executeAction("TYPE", mkPropertyValues({"TEXT":"replaced$1"})) #replace regexp = xDialog.getChild("regexp") regexp.executeAction("CLICK", tuple()) #regular expressions replaceall = xDialog.getChild("replaceall") replaceall.executeAction("CLICK", tuple()) #verify self.assertEqual(document.Text.String[0:27], "replacedest number1 testnot") regexp.executeAction("CLICK", tuple()) xcloseBtn = xDialog.getChild("close") self.ui_test.close_dialog_through_button(xcloseBtn) self.ui_test.close_doc()
def test_word_count_interpunction_counted_tdf56975(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") document = self.ui_test.get_component() #Open writer, enter "Testing one two! Test?" type_text(xWriterEdit, "Testing one two! Test?") #-> LO says: 4 words. SUCCESS! :) self.ui_test.execute_modeless_dialog_through_command(".uno:WordCountDialog") xDialog = self.xUITest.getTopFocusWindow() xselectwords = xDialog.getChild("selectwords") xdocwords = xDialog.getChild("docwords") xselectchars = xDialog.getChild("selectchars") xdocchars = xDialog.getChild("docchars") xselectcharsnospaces = xDialog.getChild("selectcharsnospaces") xdoccharsnospaces = xDialog.getChild("doccharsnospaces") xselectcjkchars = xDialog.getChild("selectcjkchars") xdoccjkchars = xDialog.getChild("doccjkchars") self.assertEqual(get_state_as_dict(xselectwords)["Text"], "0") self.assertEqual(get_state_as_dict(xdocwords)["Text"], "4") self.assertEqual(get_state_as_dict(xselectchars)["Text"], "0") self.assertEqual(get_state_as_dict(xdocchars)["Text"], "22") self.assertEqual(get_state_as_dict(xselectcharsnospaces)["Text"], "0") self.assertEqual(get_state_as_dict(xdoccharsnospaces)["Text"], "19") self.assertEqual(get_state_as_dict(xselectcjkchars)["Text"], "0") self.assertEqual(get_state_as_dict(xdoccjkchars)["Text"], "0") xCloseBtn = xDialog.getChild("close") self.ui_test.close_dialog_through_button(xCloseBtn) self.ui_test.close_doc()
def test_bookmark_dialog_goto(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") self.ui_test.execute_dialog_through_command(".uno:InsertBookmark") xBookDlg = self.xUITest.getTopFocusWindow() xInsertBtn = xBookDlg.getChild("insert") xInsertBtn.executeAction("CLICK", tuple()) # first bookmark type_text(xWriterEdit, "Test for bookmark") xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) type_text(xWriterEdit, "Test2 for bookmark") self.ui_test.execute_dialog_through_command(".uno:InsertBookmark") xBookDlg = self.xUITest.getTopFocusWindow() xInsertBtn = xBookDlg.getChild("insert") xInsertBtn.executeAction("CLICK", tuple()) # second bookmark self.ui_test.execute_dialog_through_command(".uno:InsertBookmark") xBookDlg = self.xUITest.getTopFocusWindow() xBmk = xBookDlg.getChild("bookmarks") xFirstListEntry = xBmk.getChild("0") # select first bookmark xFirstListEntry.executeAction("SELECT", tuple()) xGoToBtn = xBookDlg.getChild("goto") xGoToBtn.executeAction("CLICK", tuple()) # goto 1st bookmark xCloseBtn = xBookDlg.getChild("close") self.ui_test.close_dialog_through_button(xCloseBtn) self.ui_test.close_doc()
def test_sort_numerical(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "1;2;3") xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) type_text(xWriterEdit, "2;8;3") selection = self.xUITest.executeCommand(".uno:SelectAll") #select whole text #Tools - Sort self.ui_test.execute_dialog_through_command(".uno:SortDialog") xDialog = self.xUITest.getTopFocusWindow() xDown = xDialog.getChild("down1") xcolsb1 = xDialog.getChild("colsb1") xtypelb1 = xDialog.getChild("typelb1") xcharacter = xDialog.getChild("character") xseparator = xDialog.getChild("separator") xDown.executeAction("CLICK", tuple()) props = {"TEXT": "Numerical"} actionProps = mkPropertyValues(props) xtypelb1.executeAction("SELECT", actionProps) xcharacter.executeAction("CLICK", tuple()) xseparator.executeAction("TYPE", mkPropertyValues({"TEXT":";"})) xOK = xDialog.getChild("ok") self.ui_test.close_dialog_through_button(xOK) #check self.assertEqual(document.Text.String[0:5], "2;8;3") self.ui_test.close_doc() # vim: set shiftwidth=4 softtabstop=4 expandtab:
def test_tracked_changes_zprev_next(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") self.xUITest.executeCommand(".uno:TrackChanges") type_text(xWriterEdit, "Test LibreOffice") self.xUITest.executeCommand(".uno:TrackChanges") type_text(xWriterEdit, " Test2") self.xUITest.executeCommand(".uno:TrackChanges") type_text(xWriterEdit, " Test3") self.xUITest.executeCommand(".uno:TrackChanges") type_text(xWriterEdit, " Test4") self.xUITest.executeCommand(".uno:TrackChanges") type_text(xWriterEdit, " Test5") self.xUITest.executeCommand(".uno:PreviousTrackedChange") self.xUITest.executeCommand(".uno:RejectTrackedChange") self.assertEqual(document.Text.String[0:37], "Test LibreOffice Test2 Test3 Test4") self.xUITest.executeCommand(".uno:PreviousTrackedChange") self.xUITest.executeCommand(".uno:PreviousTrackedChange") self.xUITest.executeCommand(".uno:AcceptTrackedChange") self.assertEqual(document.Text.String[0:37], "Test LibreOffice Test2 Test3 Test4") self.xUITest.executeCommand(".uno:NextTrackedChange") self.xUITest.executeCommand(".uno:RejectTrackedChange") self.assertEqual(document.Text.String[0:30], "Test LibreOffice Test2 Test4") self.ui_test.close_doc()
def test_word_count_dialog(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") document = self.ui_test.get_component() type_text(xWriterEdit, "Test for word count dialog") #type text xWriterEdit.executeAction("SELECT", mkPropertyValues({"START_POS": "0", "END_POS": "8"})) #select two words self.ui_test.execute_modeless_dialog_through_command(".uno:WordCountDialog") xDialog = self.xUITest.getTopFocusWindow() xselectwords = xDialog.getChild("selectwords") xdocwords = xDialog.getChild("docwords") xselectchars = xDialog.getChild("selectchars") xdocchars = xDialog.getChild("docchars") xselectcharsnospaces = xDialog.getChild("selectcharsnospaces") xdoccharsnospaces = xDialog.getChild("doccharsnospaces") xselectcjkchars = xDialog.getChild("selectcjkchars") xdoccjkchars = xDialog.getChild("doccjkchars") self.assertEqual(get_state_as_dict(xselectwords)["Text"], "2") self.assertEqual(get_state_as_dict(xdocwords)["Text"], "5") self.assertEqual(get_state_as_dict(xselectchars)["Text"], "8") self.assertEqual(get_state_as_dict(xdocchars)["Text"], "26") self.assertEqual(get_state_as_dict(xselectcharsnospaces)["Text"], "7") self.assertEqual(get_state_as_dict(xdoccharsnospaces)["Text"], "22") self.assertEqual(get_state_as_dict(xselectcjkchars)["Text"], "0") self.assertEqual(get_state_as_dict(xdoccjkchars)["Text"], "0") xCloseBtn = xDialog.getChild("close") self.ui_test.close_dialog_through_button(xCloseBtn) self.ui_test.close_doc()
def test_tdf122722_format_character_hidden(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") #1. Start LibreOffice #2. Create New Writer Document #3. Type "LibreOffice" in Writer type_text(xWriterEdit, "LibreOffice") #4. Select "LibreOffice" with mouse, and right click self.xUITest.executeCommand(".uno:SelectAll") self.assertEqual(document.Text.String[0:11], "LibreOffice") #5. Appear Context Menu, Character -> Character #6. Opened Character, Select "Font Effect" tab #7. Check Hidden, and click [OK] #8. Crash a LibreOffice self.ui_test.execute_dialog_through_command(".uno:FontDialog") xDialog = self.xUITest.getTopFocusWindow() xTabs = xDialog.getChild("tabcontrol") select_pos(xTabs, "1") xEffects = xDialog.getChild("effectslb") xRelief = xDialog.getChild("relieflb") xBlinking = xDialog.getChild("blinkingcb") xHidden = xDialog.getChild("hiddencb") xOverline = xDialog.getChild("overlinelb") xStrikeout = xDialog.getChild("strikeoutlb") xUnderline = xDialog.getChild("underlinelb") xEmphasis = xDialog.getChild("emphasislb") xPosition = xDialog.getChild("positionlb") xHidden.executeAction("CLICK", tuple()) xOK = xDialog.getChild("ok") self.ui_test.close_dialog_through_button(xOK) #un-hidden self.ui_test.execute_dialog_through_command(".uno:FontDialog") xDialog = self.xUITest.getTopFocusWindow() xTabs = xDialog.getChild("tabcontrol") select_pos(xTabs, "1") xEffects = xDialog.getChild("effectslb") xRelief = xDialog.getChild("relieflb") xBlinking = xDialog.getChild("blinkingcb") xHidden = xDialog.getChild("hiddencb") xOverline = xDialog.getChild("overlinelb") xStrikeout = xDialog.getChild("strikeoutlb") xUnderline = xDialog.getChild("underlinelb") xEmphasis = xDialog.getChild("emphasislb") xPosition = xDialog.getChild("positionlb") self.assertEqual(get_state_as_dict(xHidden)["Selected"], "true") xHidden.executeAction("CLICK", tuple()) xOK = xDialog.getChild("ok") self.ui_test.close_dialog_through_button(xOK) self.assertEqual(document.Text.String[0:11], "LibreOffice") self.ui_test.close_doc()
def test_text_to_table(self): writer_doc = self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") #Enter A;B ; select the text ; dialog Text to table - Semicolon; verify type_text(xWriterEdit, "A;B;C") xWriterEdit.executeAction("SELECT", mkPropertyValues({"START_POS": "0", "END_POS": "5"})) self.ui_test.execute_dialog_through_command(".uno:ConvertTextToTable") xDialog = self.xUITest.getTopFocusWindow() semicolons = xDialog.getChild("semicolons") semicolons.executeAction("CLICK", tuple()) xOKBtn = xDialog.getChild("ok") self.ui_test.close_dialog_through_button(xOKBtn) #verify self.assertEqual(document.TextTables.getCount(), 1) tables = document.getTextTables() self.assertEqual(len(tables[0].getRows()), 1) self.assertEqual(len(tables[0].getColumns()), 3) #undo self.xUITest.executeCommand(".uno:Undo") self.assertEqual(document.TextTables.getCount(), 0) self.assertEqual(document.Text.String[0:5], "A;B;C") self.ui_test.close_doc()
def test_tsd123446_undo_redo_ToC_crash(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") #- Add a word to an empty document. type_text(xWriterEdit, "LibreOffice") #- Change its style to Heading 2. self.xUITest.executeCommand(".uno:StyleApply?Style:string=Heading%202&FamilyName:string=ParagraphStyles") #- Position cursor somewhere in the middle of the word, and add Table of Contents #(no need to change anything in the dialog). self.xUITest.executeCommand(".uno:GoLeft") self.xUITest.executeCommand(".uno:GoLeft") self.xUITest.executeCommand(".uno:GoLeft") self.xUITest.executeCommand(".uno:GoLeft") self.ui_test.execute_dialog_through_command(".uno:InsertMultiIndex") xDialog = self.xUITest.getTopFocusWindow() xokbtn = xDialog.getChild("ok") self.ui_test.close_dialog_through_button(xokbtn) #- Undo the ToC insertion. self.xUITest.executeCommand(".uno:Undo") #- Redo the ToC insertion. self.xUITest.executeCommand(".uno:Redo") #=> Crash. Now we verify the text # This second undo crash in Clang build https://bugs.documentfoundation.org/show_bug.cgi?id=123313#c9 self.xUITest.executeCommand(".uno:Undo") self.assertEqual(document.Text.String[0:7], "LibreOf") self.ui_test.close_doc()
def test_insert_horizontal_line(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "Test horizontal line") #write the text self.xUITest.executeCommand(".uno:StyleApply?Style:string=Horizontal%20Line&FamilyName:string=ParagraphStyles") #insert horizontal line self.ui_test.execute_dialog_through_command(".uno:EditStyle") #open style dialog xDialog = self.xUITest.getTopFocusWindow() xStyleNametxt = xDialog.getChild("namerw") self.assertEqual(get_state_as_dict(xStyleNametxt)["Text"], "Horizontal Line") #check style name xCancBtn = xDialog.getChild("cancel") self.ui_test.close_dialog_through_button(xCancBtn) self.xUITest.executeCommand(".uno:Undo") self.xUITest.executeCommand(".uno:Redo") self.ui_test.execute_dialog_through_command(".uno:EditStyle") #open style dialog xDialog = self.xUITest.getTopFocusWindow() xStyleNametxt = xDialog.getChild("namerw") self.assertEqual(get_state_as_dict(xStyleNametxt)["Text"], "Horizontal Line") #check style name xCancBtn = xDialog.getChild("cancel") self.ui_test.close_dialog_through_button(xCancBtn) self.ui_test.close_doc()
def test_math_edit(self): self.ui_test.create_doc_in_start_center("math") xMathDoc = self.xUITest.getTopFocusWindow() xMathEdit = xMathDoc.getChild("math_edit") type_text(xMathEdit, "E=mc^2") self.ui_test.close_doc()
def test_type_text(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "This is my first writer text written through the UI testing") self.ui_test.close_doc()
def test_select_text(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "This is my first writer text written through the UI testing") xWriterEdit.executeAction("SELECT", mkPropertyValues({"START_POS": "0", "END_POS": "4"})) self.ui_test.close_doc()
def test_text_color_change(self): self.ui_test.create_doc_in_start_center("writer") self.xUITest.executeCommandWithParameters( ".uno:Color", mkPropertyValues({"Color": 16776960})) xWriterEdit = self.xUITest.getTopFocusWindow().getChild("writer_edit") type_text(xWriterEdit, "Libreoffice") self.ui_test.close_doc() # vim: set shiftwidth=4 softtabstop=4 expandtab:
def test_tdf132169(self): writer_doc = self.ui_test.load_file(get_url_for_data_file("shape.odt")) #set measurement to points self.ui_test.execute_dialog_through_command(".uno:OptionsTreeDialog") xDialogOpt = self.xUITest.getTopFocusWindow() xPages = xDialogOpt.getChild("pages") xWriterEntry = xPages.getChild('3') xWriterEntry.executeAction("EXPAND", tuple()) xWriterGeneralEntry = xWriterEntry.getChild('0') xWriterGeneralEntry.executeAction("SELECT", tuple()) xMetric = xDialogOpt.getChild("metric") props = {"TEXT": "Point"} actionProps = mkPropertyValues(props) xMetric.executeAction("SELECT", actionProps) xOKBtn = xDialogOpt.getChild("ok") self.ui_test.close_dialog_through_button(xOKBtn) xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") self.xUITest.executeCommand(".uno:JumpToNextFrame") #wait until the toolbar is available self.ui_test.wait_until_child_is_available(xWriterEdit, 'metricfield') xLineMetric = xWriterEdit.getChild('metricfield') self.assertEqual(get_state_as_dict(xLineMetric)["Text"], "0.0 pt") #Check changing value from dialog also works self.ui_test.execute_dialog_through_command(".uno:FormatLine") xFormatLineDlg = self.xUITest.getTopFocusWindow() xWidth = xFormatLineDlg.getChild('MTR_FLD_LINE_WIDTH') type_text(xWidth, "4.0") xOKBtn = xFormatLineDlg.getChild("ok") self.ui_test.close_dialog_through_button(xOKBtn) self.ui_test.wait_until_property_is_updated(xLineMetric, "Text", "4.0 pt") self.assertEqual(get_state_as_dict(xLineMetric)["Text"], "4.0 pt") xLineMetric.executeAction("UP", tuple()) document = self.ui_test.get_component() drawPage = document.getDrawPages().getByIndex(0) shape = drawPage.getByIndex(0) #Without the fix in place, it would have been 310 self.assertEqual(shape.LineWidth, 176) self.ui_test.close_doc()
def test_input_window(self): self.ui_test.create_doc_in_start_center("calc") xCalcDoc = self.xUITest.getTopFocusWindow() document = self.ui_test.get_component() xInputWin = xCalcDoc.getChild("sc_input_window") type_text(xInputWin, "test") xInputWin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) self.assertEqual(get_cell_by_position(document, 0, 0, 0).getString(), "test") self.ui_test.close_doc()
def test_tdf138822(self): self.ui_test.create_doc_in_start_center("calc") calcDoc = self.xUITest.getTopFocusWindow() xPosWindow = calcDoc.getChild('pos_window') self.assertEqual('A1', get_state_as_dict(xPosWindow)['Text']) self.ui_test.execute_modeless_dialog_through_command(".uno:DefineName") xManageNamesDialog = self.xUITest.getTopFocusWindow() xAddBtn = xManageNamesDialog.getChild("add") self.ui_test.close_dialog_through_button(xAddBtn) xDefineNamesDialog = self.xUITest.getTopFocusWindow() xAddBtn = xDefineNamesDialog.getChild("add") self.assertEqual("false", get_state_as_dict(xAddBtn)['Enabled']) xEdit = xDefineNamesDialog.getChild("edit") type_text(xEdit, "rangeName") self.assertEqual("true", get_state_as_dict(xAddBtn)['Enabled']) self.ui_test.close_dialog_through_button(xAddBtn) xManageNamesDialog = self.xUITest.getTopFocusWindow() xNamesList = xManageNamesDialog.getChild('names') self.assertEqual(1, len(xNamesList.getChildren())) self.assertEqual(get_state_as_dict(xNamesList.getChild('0'))["Text"], "rangeName\t$Sheet1.$A$1\tDocument (Global)") xCancelBtn = xManageNamesDialog.getChild("cancel") self.ui_test.close_dialog_through_button(xCancelBtn) # Open the dialog again self.ui_test.execute_modeless_dialog_through_command(".uno:DefineName") xManageNamesDialog = self.xUITest.getTopFocusWindow() xNamesList = xManageNamesDialog.getChild('names') # Without the fix in place, this test would have failed with # AssertionError: 0 != 1 self.assertEqual(0, len(xNamesList.getChildren())) xOkBtn = xManageNamesDialog.getChild("ok") self.ui_test.close_dialog_through_button(xOkBtn) self.ui_test.close_doc()
def test_type_text(self): self.ui_test.create_doc_in_start_center("calc") self.ui_test.execute_modeless_dialog_through_command(".uno:AddName") xAddNameDlg = self.xUITest.getTopFocusWindow() xEdit = xAddNameDlg.getChild("edit") type_text(xEdit, "simpleRangeName") xAddBtn = xAddNameDlg.getChild("cancel") self.ui_test.close_dialog_through_button(xAddBtn) self.ui_test.close_doc()
def test_create_range_name(self): self.ui_test.create_doc_in_start_center("calc") self.ui_test.execute_modeless_dialog_through_command(".uno:AddName") xAddNameDlg = self.xUITest.getTopFocusWindow() xEdit = xAddNameDlg.getChild("edit") type_text(xEdit, "simpleRangeName") xAddBtn = xAddNameDlg.getChild("add") xAddBtn.executeAction("CLICK", tuple()) self.ui_test.close_doc()
def test_type_text(self): self.ui_test.create_doc_in_start_center("calc") self.ui_test.execute_modeless_dialog_through_command(".uno:AddName") xAddNameDlg = self.xUITest.getTopFocusWindow() xEdit = xAddNameDlg.getChild("edit") type_text(xEdit, "simpleRangeName") xAddBtn = xAddNameDlg.getChild("cancel") self.ui_test.close_dialog_through_button(xAddBtn) self.ui_test.close_doc()
def test_tdf140117(self): # load the sample file self.ui_test.load_file(get_url_for_data_file("tdf140117.fodt")) xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") document = self.ui_test.get_component() for i in range(3): xWriterEdit.executeAction("GOTO", mkPropertyValues({"PAGE": "2"})) self.xUITest.executeCommand(".uno:JumpToHeader") xPageSytle = document.getStyleFamilies().getByIndex(2) xHeaderText = xPageSytle.getByIndex(0).HeaderText.String xHeaderFirstText = xPageSytle.getByIndex(0).HeaderTextFirst.String xHeaderLeftText = xPageSytle.getByIndex(0).HeaderTextLeft.String xHeaderRightText = xPageSytle.getByIndex(0).HeaderTextRight.String # Option "same content on left and right pages" is false, # insert text "XXXX" before actual header text "left" on page 2 if i == 0: type_text(xWriterEdit, "XXXX") # Option "same content on left and right pages" is true, # header of page 2 contains the same text as page 1 elif i == 1: self.assertEqual("right", xHeaderText) self.assertEqual("right", xHeaderRightText) # Option "same content on left and right pages" is false again. # This was "right" instead of keeping the header content disabled # temporarily for the second interaction of the loop. elif i == 2: self.assertEqual("XXXXleft", xHeaderLeftText) self.ui_test.execute_dialog_through_command(".uno:PageDialog") PageDialog = self.xUITest.getTopFocusWindow() xTabs = PageDialog.getChild("tabcontrol") select_pos(xTabs, "4") # Change option "same content on left and right pages" for the next iteration Button = xTabs.getChild('checkSameLR') Button.executeAction("CLICK", tuple()) ok = PageDialog.getChild("ok") self.ui_test.close_dialog_through_button(ok) self.ui_test.close_doc()
def test_input_window(self): self.ui_test.create_doc_in_start_center("calc") xCalcDoc = self.xUITest.getTopFocusWindow() document = self.ui_test.get_component() xInputWin = xCalcDoc.getChild("sc_input_window") type_text(xInputWin, "test") xInputWin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) self.assertEqual( get_cell_by_position(document, 0, 0, 0).getString(), "test") self.ui_test.close_doc()
def handle_add_dlg( dialog): #handle add target dialog - need special handling xNewNameTxt = dialog.getChild("name") xNewContentTxt = dialog.getChild("content") xOKBtn = dialog.getChild("close") xTypeList = dialog.getChild( "type") #0: Text, 1: Regex, 2: Predefined select_pos(xTypeList, 0) #Text self.assertEqual( int(get_state_as_dict(xTypeList)["SelectEntryPos"]), 0) type_text(xNewNameTxt, targets_list[self.add_target_counter][0]) type_text(xNewContentTxt, targets_list[self.add_target_counter][1]) self.ui_test.close_dialog_through_button(xOKBtn)
def test_insert_qr_code_gen(self): calc_doc = self.ui_test.create_doc_in_start_center("calc") xCalcDoc = self.xUITest.getTopFocusWindow() gridwin = xCalcDoc.getChild("grid_window") document = self.ui_test.get_component() # cancel the dialog without doing anything self.ui_test.execute_dialog_through_command(".uno:InsertQrCode") xDialog = self.xUITest.getTopFocusWindow() xURL = xDialog.getChild("edit_text") type_text(xURL, "www.libreoffice.org") xCloseBtn = xDialog.getChild("cancel") self.ui_test.close_dialog_through_button(xCloseBtn) with self.assertRaises(IndexOutOfBoundsException): document.Sheets.getByIndex(0).DrawPage.getByIndex(0) # Reopen the dialog box self.ui_test.execute_dialog_through_command(".uno:InsertQrCode") xDialog = self.xUITest.getTopFocusWindow() # Get elements in the Dialog Box xURL = xDialog.getChild("edit_text") xECC_Low = xDialog.getChild( "button_low") #How radio button input is written in text. xBorder = xDialog.getChild("edit_margin") type_text(xURL, "www.libreoffice.org") #set the QR code xECC_Low.executeAction("CLICK", tuple()) xBorder.executeAction("UP", tuple()) xBorder.executeAction("DOWN", tuple()) xOKBtn = xDialog.getChild("ok") xOKBtn.executeAction("CLICK", tuple()) # check the QR code in the document self.assertEqual( document.Sheets.getByIndex(0).DrawPage.getByIndex( 0).QRCodeProperties.Payload, "www.libreoffice.org") self.assertEqual( document.Sheets.getByIndex(0).DrawPage.getByIndex( 0).QRCodeProperties.ErrorCorrection, 1) self.assertEqual( document.Sheets.getByIndex(0).DrawPage.getByIndex( 0).QRCodeProperties.Border, 1) self.ui_test.close_doc()
def test_text(self): self.ui_test.create_doc_in_start_center("calc") self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog") xCellsDlg = self.xUITest.getTopFocusWindow() xDecimalPlaces = xCellsDlg.getChild("leadzerosed") type_text(xDecimalPlaces, "4") decimal_places_state = get_state_as_dict(xDecimalPlaces) assert (decimal_places_state["Text"] == "41") okBtn = xCellsDlg.getChild("ok") okBtn.executeAction("CLICK", tuple()) self.ui_test.close_doc()
def test_comment_trackchanges(self): #tdf111524 self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "foo") document = self.ui_test.get_component() selection = self.xUITest.executeCommand(".uno:SelectAll") self.xUITest.executeCommand(".uno:InsertAnnotation") self.xUITest.executeCommand(".uno:TrackChanges") self.xUITest.executeCommand(".uno:DeleteAllNotes") self.ui_test.close_doc()
def test_tdf78068_format_paragraph_crash(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") #- add some text type_text(xWriterEdit, "Test") #- go to Format > Paragraph self.ui_test.execute_dialog_through_command(".uno:ParagraphDialog") xDialog = self.xUITest.getTopFocusWindow() xTabs = xDialog.getChild("tabcontrol") select_pos(xTabs, "0") xOK = xDialog.getChild("ok") xOK.executeAction("CLICK", tuple()) #close dialog self.assertEqual(document.Text.String[0:4], "Test") self.ui_test.close_doc()
def test_text(self): self.ui_test.create_doc_in_start_center("calc") self.ui_test.execute_dialog_through_command(".uno:FormatCellDialog") xCellsDlg = self.xUITest.getTopFocusWindow() xDecimalPlaces = xCellsDlg.getChild("leadzerosed") type_text(xDecimalPlaces, "4") decimal_places_state = get_state_as_dict(xDecimalPlaces) assert(decimal_places_state["Text"] == "41") okBtn = xCellsDlg.getChild("ok") self.ui_test.close_dialog_through_button(okBtn) self.ui_test.close_doc()
def test_invalid_names(self): self.ui_test.create_doc_in_start_center("calc") self.ui_test.execute_modeless_dialog_through_command(".uno:AddName") xAddNameDlg = self.xUITest.getTopFocusWindow() invalid_names = ["A1", "12", "1.2", "A1:B2", "test.a", \ "test+", "test-", "test*", "test!abc", "test#", \ "test^", "test°", "test$", "test§", "test%", \ "test&", "test/", "test(", "test)", "test[", "test]", \ "test\\", "test`", "test´", "test'", "test~", "test<", \ "tst>", "test|", "test:t", "test;z"] xLabel = xAddNameDlg.getChild("label") xAddBtn = xAddNameDlg.getChild("add") xEdit = xAddNameDlg.getChild("edit") success_text = get_state_as_dict(xLabel)["Text"] for name in invalid_names: with self.subTest(name=name): select_all(xEdit) type_text(xEdit, name) # tdf#132869 - Without the fix in place, this test would have failed with # - Expected: "Invalid name. Start with a letter, use only letters, numbers and underscore." # - Actual : "" self.assertNotEqual(success_text, get_state_as_dict(xEdit)["QuickHelpText"]) self.assertEqual( get_state_as_dict(xAddBtn)["Enabled"], "false") select_all(xEdit) type_text(xEdit, "valid_name") self.assertEqual(success_text, get_state_as_dict(xLabel)["Text"]) self.assertEqual(success_text, get_state_as_dict(xEdit)["QuickHelpText"]) self.assertEqual(get_state_as_dict(xAddBtn)["Enabled"], "true") self.ui_test.close_dialog_through_button(xAddBtn) self.ui_test.close_doc()
def test_select_text(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text( xWriterEdit, "This is my first writer text written through the UI testing") xWriterEdit.executeAction( "SELECT", mkPropertyValues({ "START_POS": "0", "END_POS": "4" })) self.ui_test.close_doc()
def test_create_local_range_name(self): self.ui_test.create_doc_in_start_center("calc") self.ui_test.execute_modeless_dialog_through_command(".uno:AddName") xAddNameDlg = self.xUITest.getTopFocusWindow() xEdit = xAddNameDlg.getChild("edit") type_text(xEdit, "simpleRangeName") xScope = xAddNameDlg.getChild("scope") select_pos(xScope, "1") xAddBtn = xAddNameDlg.getChild("add") self.ui_test.close_dialog_through_button(xAddBtn) self.ui_test.close_doc()
def test_create_local_range_name(self): self.ui_test.create_doc_in_start_center("calc") self.ui_test.execute_modeless_dialog_through_command(".uno:AddName") xAddNameDlg = self.xUITest.getTopFocusWindow() xEdit = xAddNameDlg.getChild("edit") type_text(xEdit, "simpleRangeName") xScope = xAddNameDlg.getChild("scope") select_pos(xScope, "1") xAddBtn = xAddNameDlg.getChild("add") self.ui_test.close_dialog_through_button(xAddBtn) self.ui_test.close_doc()
def test_tdf91270(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "Test") self.xUITest.executeCommand(".uno:TrackChanges") selection = self.xUITest.executeCommand(".uno:SelectAll") #select whole text self.xUITest.executeCommand(".uno:Cut") #cut text self.ui_test.execute_modeless_dialog_through_command(".uno:AcceptTrackedChanges") xTrackDlg = self.xUITest.getTopFocusWindow() xCancBtn = xTrackDlg.getChild("close") xCancBtn.executeAction("CLICK", tuple()) self.ui_test.close_doc()
def test_tdf140731(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, 'Lorem') xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE":"F3"})) xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"})) #generating a big text with ~60k words and several paragraphs for i in range(0,8): self.xUITest.executeCommand(".uno:SelectAll") xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+c"})) xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+v"})) xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+v"})) xWriterEdit.executeAction("GOTO", mkPropertyValues({"PAGE": "1"})) #Format->Text operations on small selections (which would generate <~500 redlines), changetracking still working self.xUITest.executeCommand(".uno:TrackChanges") xWriterEdit.executeAction("SELECT", mkPropertyValues({"START_POS": "1", "END_POS": "1000"})) self.xUITest.executeCommand(".uno:ChangeCaseToTitleCase") document = self.ui_test.get_component() self.assertTrue(document.Redlines.createEnumeration().hasMoreElements()) #Removing all the redlines. self.ui_test.execute_modeless_dialog_through_command(".uno:AcceptTrackedChanges") xTrackDlg = self.xUITest.getTopFocusWindow() xAccBtn = xTrackDlg.getChild("rejectall") xAccBtn.executeAction("CLICK", tuple()) xCancBtn = xTrackDlg.getChild("close") xCancBtn.executeAction("CLICK", tuple()) #Without the fix in place, on big selections writer would freeze. Now it ignores change tracking. self.xUITest.executeCommand(".uno:SelectAll") self.xUITest.executeCommand(".uno:ChangeCaseToTitleCase") self.assertFalse(document.Redlines.createEnumeration().hasMoreElements()) #The patch has no effects on the Format->Text operations self.assertEqual(document.Text.String[0:26], "Lorem Ipsum Dolor Sit Amet") self.xUITest.executeCommand(".uno:SelectAll") self.xUITest.executeCommand(".uno:ChangeCaseToUpper") self.assertEqual(document.Text.String[0:26], "LOREM IPSUM DOLOR SIT AMET") self.ui_test.close_doc()
def test_tdf78068_format_paragraph_crash(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") #- add some text type_text(xWriterEdit, "Test") #- go to Format > Paragraph self.ui_test.execute_dialog_through_command(".uno:ParagraphDialog") xDialog = self.xUITest.getTopFocusWindow() xTabs = xDialog.getChild("tabcontrol") select_pos(xTabs, "0") xOK = xDialog.getChild("ok") xOK.executeAction("CLICK", tuple()) #close dialog self.assertEqual(document.Text.String[0:4], "Test") self.ui_test.close_doc() # vim: set shiftwidth=4 softtabstop=4 expandtab:
def test_comment_trackchanges(self): #tdf111524 self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "foo") document = self.ui_test.get_component() selection = self.xUITest.executeCommand(".uno:SelectAll") self.xUITest.executeCommand(".uno:InsertAnnotation") self.xUITest.executeCommand(".uno:TrackChanges") self.xUITest.executeCommand(".uno:DeleteAllNotes") self.ui_test.close_doc()
def test_comments_delete(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "Test LibreOffice") document = self.ui_test.get_component() selection = self.xUITest.executeCommand(".uno:SelectAll") self.xUITest.executeCommand(".uno:InsertAnnotation") cursor = document.getCurrentController().getViewCursor() type_text(xWriterEdit, "EEEEE") self.xUITest.executeCommand(".uno:InsertAnnotation") self.xUITest.executeCommand(".uno:DeleteAllNotes") self.assertEqual(document.Text.String[0:4], "Test") self.ui_test.close_doc()
def test_tracked_changes_accept(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") self.xUITest.executeCommand(".uno:TrackChanges") type_text(xWriterEdit, "Test LibreOffice") self.xUITest.executeCommand(".uno:ShowTrackedChanges") self.ui_test.execute_modeless_dialog_through_command(".uno:AcceptTrackedChanges") xTrackDlg = self.xUITest.getTopFocusWindow() xAccBtn = xTrackDlg.getChild("accept") xAccBtn.executeAction("CLICK", tuple()) xCancBtn = xTrackDlg.getChild("close") xCancBtn.executeAction("CLICK", tuple()) self.assertEqual(document.Text.String[0:16], "Test LibreOffice") self.ui_test.close_doc()
def test_tdf121591_frame_print_preview(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") self.ui_test.execute_dialog_through_command( ".uno:InsertFrame") # insert frame xDialogFr = self.xUITest.getTopFocusWindow() xOkBtn = xDialogFr.getChild("ok") xOkBtn.executeAction("CLICK", tuple()) type_text(xWriterEdit, "Text in the frame") #open and close print preview self.xUITest.executeCommand(".uno:PrintPreview") #open print preview self.xUITest.executeCommand(".uno:ClosePreview") # close print preview #verify nr. of frames self.assertEqual(document.TextFrames.getCount(), 1) self.ui_test.close_doc()
def test_tracked_changes_accept(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") self.xUITest.executeCommand(".uno:TrackChanges") type_text(xWriterEdit, "Test LibreOffice") self.xUITest.executeCommand(".uno:ShowTrackedChanges") self.ui_test.execute_modeless_dialog_through_command( ".uno:AcceptTrackedChanges") xTrackDlg = self.xUITest.getTopFocusWindow() xAccBtn = xTrackDlg.getChild("accept") xAccBtn.executeAction("CLICK", tuple()) xCancBtn = xTrackDlg.getChild("close") xCancBtn.executeAction("CLICK", tuple()) self.assertEqual(document.Text.String[0:16], "Test LibreOffice") self.ui_test.close_doc()
def test_select_text(self): self.ui_test.create_doc_in_start_center("calc") self.ui_test.execute_modeless_dialog_through_command(".uno:AddName") xAddNameDlg = self.xUITest.getTopFocusWindow() xEdit = xAddNameDlg.getChild("edit") type_text(xEdit, "simpleRangeName") xEdit.executeAction("SELECT", mkPropertyValues({"FROM": "2", "TO": "9"})) type_text(xEdit, "otherChars") self.assertEqual("siotherCharsgeName", get_state_as_dict(xEdit)["Text"]) select_text(xEdit, from_pos="2", to="12") self.assertEqual("otherChars", get_state_as_dict(xEdit)["SelectedText"]) xAddBtn = xAddNameDlg.getChild("cancel") self.ui_test.close_dialog_through_button(xAddBtn) self.ui_test.close_doc()
def test_tdf91270(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "Test") self.xUITest.executeCommand(".uno:TrackChanges") selection = self.xUITest.executeCommand( ".uno:SelectAll") #select whole text self.xUITest.executeCommand(".uno:Cut") #cut text self.ui_test.execute_modeless_dialog_through_command( ".uno:AcceptTrackedChanges") xTrackDlg = self.xUITest.getTopFocusWindow() xCancBtn = xTrackDlg.getChild("close") xCancBtn.executeAction("CLICK", tuple()) self.ui_test.close_doc()
def test_sort(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "a") xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) type_text(xWriterEdit, "c") xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) type_text(xWriterEdit, "v") selection = self.xUITest.executeCommand( ".uno:SelectAll") #select whole text #Tools - Sort self.ui_test.execute_dialog_through_command(".uno:SortDialog") xDialog = self.xUITest.getTopFocusWindow() xDown = xDialog.getChild("down1") xDown.executeAction("CLICK", tuple()) xOK = xDialog.getChild("ok") self.ui_test.close_dialog_through_button(xOK) #check self.assertEqual(document.Text.String[0:1], "v") self.ui_test.close_doc()
def test_define_database_range(self): self.ui_test.create_doc_in_start_center("calc") # Select range A1:D10 xGridWin = self.xUITest.getTopFocusWindow().getChild("grid_window") xGridWin.executeAction("SELECT", mkPropertyValues({"RANGE": "A1:D10"})) # Execute "Define DB Range dialog" self.ui_test.execute_modeless_dialog_through_command( ".uno:DefineDBName") xDefineNameDlg = self.xUITest.getTopFocusWindow() xEntryBox = xDefineNameDlg.getChild("entry") type_text(xEntryBox, "my_database") xOkBtn = xDefineNameDlg.getChild("ok") self.ui_test.close_dialog_through_button(xOkBtn) # Deselect range xGridWin.executeAction("SELECT", mkPropertyValues({"CELL": "A1"})) # Execute "Select DB Range dialog" self.ui_test.execute_dialog_through_command(".uno:SelectDB") xSelectNameDlg = self.xUITest.getTopFocusWindow() xListBox = xSelectNameDlg.getChild("treeview") xListBoxState = get_state_as_dict(xListBox) self.assertEqual(xListBoxState["SelectionCount"], "1") self.assertEqual(xListBoxState["SelectEntryText"], "my_database") xOkBtn = xSelectNameDlg.getChild("ok") self.ui_test.close_dialog_through_button(xOkBtn) # Assert that the correct range has been selected gridWinState = get_state_as_dict(xGridWin) self.assertEqual(gridWinState["MarkedArea"], "Sheet1.A1:Sheet1.D10") self.ui_test.close_doc()
def test_comments_delete(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "Test LibreOffice") document = self.ui_test.get_component() selection = self.xUITest.executeCommand(".uno:SelectAll") self.xUITest.executeCommand(".uno:InsertAnnotation") cursor = document.getCurrentController().getViewCursor() xWriterDoc.executeAction("LEFT", tuple()) type_text(xWriterEdit, "EEEEE") self.xUITest.executeCommand(".uno:InsertAnnotation") self.xUITest.executeCommand(".uno:DeleteAllNotes") self.assertEqual(document.Text.String[0:4], "Test") self.ui_test.close_doc()
def test_word_count_dialog(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") document = self.ui_test.get_component() type_text(xWriterEdit, "Test for word count dialog") #type text xWriterEdit.executeAction("SELECT", mkPropertyValues({ "START_POS": "0", "END_POS": "8" })) #select two words self.ui_test.execute_modeless_dialog_through_command( ".uno:WordCountDialog") xDialog = self.xUITest.getTopFocusWindow() xselectwords = xDialog.getChild("selectwords") xdocwords = xDialog.getChild("docwords") xselectchars = xDialog.getChild("selectchars") xdocchars = xDialog.getChild("docchars") xselectcharsnospaces = xDialog.getChild("selectcharsnospaces") xdoccharsnospaces = xDialog.getChild("doccharsnospaces") xselectcjkchars = xDialog.getChild("selectcjkchars") xdoccjkchars = xDialog.getChild("doccjkchars") self.assertEqual(get_state_as_dict(xselectwords)["Text"], "2") self.assertEqual(get_state_as_dict(xdocwords)["Text"], "5") self.assertEqual(get_state_as_dict(xselectchars)["Text"], "8") self.assertEqual(get_state_as_dict(xdocchars)["Text"], "26") self.assertEqual(get_state_as_dict(xselectcharsnospaces)["Text"], "7") self.assertEqual(get_state_as_dict(xdoccharsnospaces)["Text"], "22") self.assertEqual(get_state_as_dict(xselectcjkchars)["Text"], "0") self.assertEqual(get_state_as_dict(xdoccjkchars)["Text"], "0") xCloseBtn = xDialog.getChild("close") self.ui_test.close_dialog_through_button(xCloseBtn) self.ui_test.close_doc()
def test_create_range_name(self): self.ui_test.create_doc_in_start_center("calc") calcDoc = self.xUITest.getTopFocusWindow() xPosWindow = calcDoc.getChild('pos_window') self.assertEqual('A1', get_state_as_dict(xPosWindow)['Text']) self.ui_test.execute_modeless_dialog_through_command(".uno:AddName") xAddNameDlg = self.xUITest.getTopFocusWindow() xEdit = xAddNameDlg.getChild("edit") type_text(xEdit, "globalRangeName") xAddBtn = xAddNameDlg.getChild("add") self.ui_test.close_dialog_through_button(xAddBtn) self.assertEqual('globalRangeName', get_state_as_dict(xPosWindow)['Text']) self.ui_test.close_doc()
def test_define_database_range(self): self.ui_test.create_doc_in_start_center("calc") # Select range A1:D10 xGridWin = self.xUITest.getTopFocusWindow().getChild("grid_window") xGridWin.executeAction("SELECT", mkPropertyValues({"RANGE": "A1:D10"})) # Execute "Define DB Range dialog" self.ui_test.execute_modeless_dialog_through_command(".uno:DefineDBName") xDefineNameDlg = self.xUITest.getTopFocusWindow() xEntryBox = xDefineNameDlg.getChild("entry") type_text(xEntryBox, "my_database") xOkBtn = xDefineNameDlg.getChild("ok") self.ui_test.close_dialog_through_button(xOkBtn) # Deselect range xGridWin.executeAction("SELECT", mkPropertyValues({"CELL": "A1"})) # Execute "Select DB Range dialog" self.ui_test.execute_dialog_through_command(".uno:SelectDB") xSelectNameDlg = self.xUITest.getTopFocusWindow() xListBox = xSelectNameDlg.getChild("treeview") xListBoxState = get_state_as_dict(xListBox) self.assertEqual(xListBoxState["SelectEntryCount"], "1") self.assertEqual(xListBoxState["SelectEntryText"], "my_database") xOkBtn = xSelectNameDlg.getChild("ok") self.ui_test.close_dialog_through_button(xOkBtn) # Assert that the correct range has been selected gridWinState = get_state_as_dict(xGridWin) self.assertEqual(gridWinState["MarkedArea"], "Sheet1.A1:Sheet1.D10") self.ui_test.close_doc()
def test_insert_footnote(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") self.xUITest.executeCommand(".uno:InsertFootnote") type_text(xWriterEdit, "LibreOffice") self.assertEqual(document.Footnotes.getByIndex(0).String, "LibreOffice") self.assertEqual(document.Footnotes.getCount(), 1) self.xUITest.executeCommand(".uno:Undo") self.assertEqual(document.Footnotes.getByIndex(0).String, "") self.xUITest.executeCommand(".uno:Undo") self.assertEqual(document.Footnotes.getCount(), 0) self.xUITest.executeCommand(".uno:Redo") self.assertEqual(document.Footnotes.getByIndex(0).String, "") self.assertEqual(document.Footnotes.getCount(), 1) self.xUITest.executeCommand(".uno:Redo") self.assertEqual(document.Footnotes.getByIndex(0).String, "LibreOffice") self.ui_test.close_doc()
def test_insert_endnote(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") self.xUITest.executeCommand(".uno:InsertEndnote") type_text(xWriterEdit, "LibreOffice") self.assertEqual(document.Endnotes[0].String, "LibreOffice") self.assertEqual(document.Endnotes.getCount(), 1) self.xUITest.executeCommand(".uno:Undo") self.assertEqual(document.Endnotes[0].String, "") self.xUITest.executeCommand(".uno:Undo") self.assertEqual(document.Endnotes.getCount(), 0) self.xUITest.executeCommand(".uno:Redo") self.assertEqual(document.Endnotes[0].String, "") self.assertEqual(document.Endnotes.getCount(), 1) self.xUITest.executeCommand(".uno:Redo") self.assertEqual(document.Endnotes[0].String, "LibreOffice") self.ui_test.close_doc()
def test_tdf119954_second_db_range(self): calc_doc = self.ui_test.load_file(get_url_for_data_file("tdf119954.ods")) xCalcDoc = self.xUITest.getTopFocusWindow() gridwin = xCalcDoc.getChild("grid_window") document = self.ui_test.get_component() #* new document #* in A1 enter 1 #* in C3 enter 2 #* on A1 define a database range 'aaa' with $Sheet1.$A$1 #* on C3 define a database range 'bbb' with $Sheet2.$C$3 #* in any cell enter formula =bbb # => result is 1 instead of 2 #* place cell cursor on that formula cell again # => see that the formula is =aaa instead of =bbb gridwin.executeAction("SELECT", mkPropertyValues({"CELL": "A1"})) self.ui_test.execute_modeless_dialog_through_command(".uno:DefineDBName") xDefineNameDlg = self.xUITest.getTopFocusWindow() xEntryBox = xDefineNameDlg.getChild("entry") type_text(xEntryBox, "aaa") add = xDefineNameDlg.getChild("add") assign = xDefineNameDlg.getChild("assign") add.executeAction("CLICK", tuple()) xOkBtn = xDefineNameDlg.getChild("ok") self.ui_test.close_dialog_through_button(xOkBtn) gridwin.executeAction("SELECT", mkPropertyValues({"CELL": "A1"})) self.ui_test.execute_modeless_dialog_through_command(".uno:DefineDBName") xDefineNameDlg = self.xUITest.getTopFocusWindow() xEntryBox = xDefineNameDlg.getChild("entry") assign = xDefineNameDlg.getChild("assign") select_all(xEntryBox) type_text(xEntryBox, "bbb") select_all(assign) type_text(assign, "$Sheet2.$C$3") add.executeAction("CLICK", tuple()) xOkBtn = xDefineNameDlg.getChild("ok") self.ui_test.close_dialog_through_button(xOkBtn) enter_text_to_cell(gridwin, "B2", "=bbb") gridwin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) self.assertEqual(get_cell_by_position(document, 0, 1, 1).getValue(), 2) enter_text_to_cell(gridwin, "C2", "=aaa") gridwin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) self.assertEqual(get_cell_by_position(document, 0, 2, 1).getValue(), 1) self.xUITest.executeCommand(".uno:Undo") self.xUITest.executeCommand(".uno:Undo") self.assertEqual(get_cell_by_position(document, 0, 2, 1).getValue(), 0) self.assertEqual(get_cell_by_position(document, 0, 1, 1).getValue(), 0) self.assertEqual(get_cell_by_position(document, 0, 1, 2).getFormula(), "") self.assertEqual(get_cell_by_position(document, 0, 1, 1).getFormula(), "") self.ui_test.close_doc()
def test_complete_math(self): self.ui_test.create_doc_in_start_center("math") xMathDoc = self.xUITest.getTopFocusWindow() xList = xMathDoc.getChild("listbox") state = get_state_as_dict(xList) self.assertEqual(state["SelectEntryText"], "Unary/Binary Operators") select_pos(xList, "1") xMathSelector = xMathDoc.getChild("element_selector") xElement = xMathSelector.getChild("1") xElement.executeAction("SELECT", tuple()) xMathEdit = xMathDoc.getChild("math_edit") type_text(xMathEdit, "1") xMathEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE":"F4"})) type_text(xMathEdit, "2") edit_state = get_state_as_dict(xMathEdit) self.assertEqual("1 <> 2 ", edit_state["Text"]) self.ui_test.close_doc()
def test_sort_numerical(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "1;2;3") xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) type_text(xWriterEdit, "2;8;3") selection = self.xUITest.executeCommand( ".uno:SelectAll") #select whole text #Tools - Sort self.ui_test.execute_dialog_through_command(".uno:SortDialog") xDialog = self.xUITest.getTopFocusWindow() xDown = xDialog.getChild("down1") xcolsb1 = xDialog.getChild("colsb1") xtypelb1 = xDialog.getChild("typelb1") xcharacter = xDialog.getChild("character") xseparator = xDialog.getChild("separator") xDown.executeAction("CLICK", tuple()) props = {"TEXT": "Numerical"} actionProps = mkPropertyValues(props) xtypelb1.executeAction("SELECT", actionProps) xcharacter.executeAction("CLICK", tuple()) xseparator.executeAction("TYPE", mkPropertyValues({"TEXT": ";"})) xOK = xDialog.getChild("ok") self.ui_test.close_dialog_through_button(xOK) #check self.assertEqual(document.Text.String[0:5], "2;8;3") self.ui_test.close_doc() # vim: set shiftwidth=4 softtabstop=4 expandtab:
def test_complete_math(self): self.ui_test.create_doc_in_start_center("math") xMathDoc = self.xUITest.getTopFocusWindow() xList = xMathDoc.getChild("listbox") state = get_state_as_dict(xList) self.assertEqual(state["SelectEntryText"], "Unary/Binary Operators") select_pos(xList, "1") xMathSelector = xMathDoc.getChild("element_selector") xElement = xMathSelector.getChild("1") xElement.executeAction("SELECT", tuple()) xMathEdit = xMathDoc.getChild("math_edit") type_text(xMathEdit, "1") xMathEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE":"F4"})) type_text(xMathEdit, "2") edit_state = get_state_as_dict(xMathEdit) self.assertEqual("1 <> 2 ", edit_state["Text"]) self.ui_test.close_doc()
def test_tdf121591_frame_print_preview(self): # FIXME unstable test return self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") self.ui_test.execute_dialog_through_command(".uno:InsertFrame") # insert frame xDialogFr = self.xUITest.getTopFocusWindow() xOkBtn=xDialogFr.getChild("ok") xOkBtn.executeAction("CLICK", tuple()) type_text(xWriterEdit, "Text in the frame") #open and close print preview self.xUITest.executeCommand(".uno:PrintPreview") #open print preview self.xUITest.executeCommand(".uno:ClosePreview") # close print preview self.xUITest.getTopFocusWindow() #Get focus after closing preview #verify nr. of frames self.assertEqual(document.TextFrames.getCount(), 1) self.ui_test.close_doc()
def test_tdf115088(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "1") xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) type_text(xWriterEdit, "1") selection = self.xUITest.executeCommand(".uno:SelectAll") #select whole text self.xUITest.executeCommand(".uno:Cut") #cut text type_text(xWriterEdit, "test") self.xUITest.executeCommand(".uno:GoLeft") self.xUITest.executeCommand(".uno:GoLeft") self.xUITest.executeCommand(".uno:GoLeft") self.xUITest.executeCommand(".uno:GoLeft") self.xUITest.executeCommand(".uno:PasteUnformatted") self.assertEqual(document.Text.String[0:2].replace('\r', '\n'), "1\n") self.ui_test.close_doc()
def test_tdf115088(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "1") xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) type_text(xWriterEdit, "1") selection = self.xUITest.executeCommand(".uno:SelectAll") #select whole text self.xUITest.executeCommand(".uno:Cut") #cut text type_text(xWriterEdit, "test") self.xUITest.executeCommand(".uno:GoLeft") self.xUITest.executeCommand(".uno:GoLeft") self.xUITest.executeCommand(".uno:GoLeft") self.xUITest.executeCommand(".uno:GoLeft") self.xUITest.executeCommand(".uno:PasteUnformatted") self.assertEqual(document.Text.String[0:2], "1\n") self.ui_test.close_doc()
def test_sort(self): self.ui_test.create_doc_in_start_center("writer") document = self.ui_test.get_component() xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") type_text(xWriterEdit, "a") xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) type_text(xWriterEdit, "c") xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) type_text(xWriterEdit, "v") selection = self.xUITest.executeCommand(".uno:SelectAll") #select whole text #Tools - Sort self.ui_test.execute_dialog_through_command(".uno:SortDialog") xDialog = self.xUITest.getTopFocusWindow() xDown = xDialog.getChild("down1") xDown.executeAction("CLICK", tuple()) xOK = xDialog.getChild("ok") self.ui_test.close_dialog_through_button(xOK) #check self.assertEqual(document.Text.String[0:1], "v") self.ui_test.close_doc()
def test_word_count_interpunction_counted_tdf56975_b(self): self.ui_test.create_doc_in_start_center("writer") xWriterDoc = self.xUITest.getTopFocusWindow() xWriterEdit = xWriterDoc.getChild("writer_edit") document = self.ui_test.get_component() #1. Create a new text document. #2. Type-in the words: # This is a test sentence. type_text(xWriterEdit, "This is a test sentence.") #3. Open the word count dialogue. # Word count in both, dialogue and status line, shows 5 words. self.ui_test.execute_modeless_dialog_through_command( ".uno:WordCountDialog") xDialog = self.xUITest.getTopFocusWindow() xselectwords = xDialog.getChild("selectwords") xdocwords = xDialog.getChild("docwords") xselectchars = xDialog.getChild("selectchars") xdocchars = xDialog.getChild("docchars") xselectcharsnospaces = xDialog.getChild("selectcharsnospaces") xdoccharsnospaces = xDialog.getChild("doccharsnospaces") xselectcjkchars = xDialog.getChild("selectcjkchars") xdoccjkchars = xDialog.getChild("doccjkchars") self.assertEqual(get_state_as_dict(xselectwords)["Text"], "0") self.assertEqual(get_state_as_dict(xdocwords)["Text"], "5") self.assertEqual(get_state_as_dict(xselectchars)["Text"], "0") self.assertEqual(get_state_as_dict(xdocchars)["Text"], "24") self.assertEqual(get_state_as_dict(xselectcharsnospaces)["Text"], "0") self.assertEqual(get_state_as_dict(xdoccharsnospaces)["Text"], "20") self.assertEqual(get_state_as_dict(xselectcjkchars)["Text"], "0") self.assertEqual(get_state_as_dict(xdoccjkchars)["Text"], "0") xCloseBtn = xDialog.getChild("close") self.ui_test.close_dialog_through_button(xCloseBtn) #4. Select the space between 'a' and 'test'. xWriterEdit.executeAction( "SELECT", mkPropertyValues({ "START_POS": "9", "END_POS": "10" })) #5. Replace selection by a non-breaking space by pressing Shift+Ctrl+Space. Don't move the cursor. self.xUITest.executeCommand(".uno:InsertNonBreakingSpace") # Word count in dialogue shows 4 words, whereas in the status line it shows 5 words. self.ui_test.execute_modeless_dialog_through_command( ".uno:WordCountDialog") xDialog = self.xUITest.getTopFocusWindow() xselectwords = xDialog.getChild("selectwords") xdocwords = xDialog.getChild("docwords") xselectchars = xDialog.getChild("selectchars") xdocchars = xDialog.getChild("docchars") xselectcharsnospaces = xDialog.getChild("selectcharsnospaces") xdoccharsnospaces = xDialog.getChild("doccharsnospaces") xselectcjkchars = xDialog.getChild("selectcjkchars") xdoccjkchars = xDialog.getChild("doccjkchars") self.assertEqual(get_state_as_dict(xselectwords)["Text"], "0") self.assertEqual(get_state_as_dict(xdocwords)["Text"], "5") self.assertEqual(get_state_as_dict(xselectchars)["Text"], "0") self.assertEqual(get_state_as_dict(xdocchars)["Text"], "24") self.assertEqual(get_state_as_dict(xselectcharsnospaces)["Text"], "0") self.assertEqual(get_state_as_dict(xdoccharsnospaces)["Text"], "20") self.assertEqual(get_state_as_dict(xselectcjkchars)["Text"], "0") self.assertEqual(get_state_as_dict(xdoccjkchars)["Text"], "0") xCloseBtn = xDialog.getChild("close") self.ui_test.close_dialog_through_button(xCloseBtn) #6. Move the cursor by pressing Left. self.xUITest.executeCommand(".uno:GoLeft") # Word count in both, dialogue and status line, shows 5 words. self.ui_test.execute_modeless_dialog_through_command( ".uno:WordCountDialog") xDialog = self.xUITest.getTopFocusWindow() xselectwords = xDialog.getChild("selectwords") xdocwords = xDialog.getChild("docwords") xselectchars = xDialog.getChild("selectchars") xdocchars = xDialog.getChild("docchars") xselectcharsnospaces = xDialog.getChild("selectcharsnospaces") xdoccharsnospaces = xDialog.getChild("doccharsnospaces") xselectcjkchars = xDialog.getChild("selectcjkchars") xdoccjkchars = xDialog.getChild("doccjkchars") self.assertEqual(get_state_as_dict(xselectwords)["Text"], "0") self.assertEqual(get_state_as_dict(xdocwords)["Text"], "5") self.assertEqual(get_state_as_dict(xselectchars)["Text"], "0") self.assertEqual(get_state_as_dict(xdocchars)["Text"], "24") self.assertEqual(get_state_as_dict(xselectcharsnospaces)["Text"], "0") self.assertEqual(get_state_as_dict(xdoccharsnospaces)["Text"], "20") self.assertEqual(get_state_as_dict(xselectcjkchars)["Text"], "0") self.assertEqual(get_state_as_dict(xdoccjkchars)["Text"], "0") xCloseBtn = xDialog.getChild("close") self.ui_test.close_dialog_through_button(xCloseBtn) self.ui_test.close_doc()
def test_tdf119954_second_db_range(self): calc_doc = self.ui_test.load_file( get_url_for_data_file("tdf119954.ods")) xCalcDoc = self.xUITest.getTopFocusWindow() gridwin = xCalcDoc.getChild("grid_window") document = self.ui_test.get_component() #* new document #* in A1 enter 1 #* in C3 enter 2 #* on A1 define a database range 'aaa' with $Sheet1.$A$1 #* on C3 define a database range 'bbb' with $Sheet2.$C$3 #* in any cell enter formula =bbb # => result is 1 instead of 2 #* place cell cursor on that formula cell again # => see that the formula is =aaa instead of =bbb gridwin.executeAction("SELECT", mkPropertyValues({"CELL": "A1"})) self.ui_test.execute_modeless_dialog_through_command( ".uno:DefineDBName") xDefineNameDlg = self.xUITest.getTopFocusWindow() xEntryBox = xDefineNameDlg.getChild("entry") type_text(xEntryBox, "aaa") add = xDefineNameDlg.getChild("add") assign = xDefineNameDlg.getChild("assign") add.executeAction("CLICK", tuple()) xOkBtn = xDefineNameDlg.getChild("ok") self.ui_test.close_dialog_through_button(xOkBtn) gridwin.executeAction("SELECT", mkPropertyValues({"CELL": "A1"})) self.ui_test.execute_modeless_dialog_through_command( ".uno:DefineDBName") xDefineNameDlg = self.xUITest.getTopFocusWindow() xEntryBox = xDefineNameDlg.getChild("entry") assign = xDefineNameDlg.getChild("assign") select_all(xEntryBox) type_text(xEntryBox, "bbb") select_all(assign) type_text(assign, "$Sheet2.$C$3") add.executeAction("CLICK", tuple()) xOkBtn = xDefineNameDlg.getChild("ok") self.ui_test.close_dialog_through_button(xOkBtn) enter_text_to_cell(gridwin, "B2", "=bbb") gridwin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) self.assertEqual(get_cell_by_position(document, 0, 1, 1).getValue(), 2) enter_text_to_cell(gridwin, "C2", "=aaa") gridwin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"})) self.assertEqual(get_cell_by_position(document, 0, 2, 1).getValue(), 1) self.xUITest.executeCommand(".uno:Undo") self.xUITest.executeCommand(".uno:Undo") self.assertEqual(get_cell_by_position(document, 0, 2, 1).getValue(), 0) self.assertEqual(get_cell_by_position(document, 0, 1, 1).getValue(), 0) self.assertEqual( get_cell_by_position(document, 0, 1, 2).getFormula(), "") self.assertEqual( get_cell_by_position(document, 0, 1, 1).getFormula(), "") # check cancel button self.ui_test.execute_modeless_dialog_through_command( ".uno:DefineDBName") xDefineNameDlg = self.xUITest.getTopFocusWindow() xCancelBtn = xDefineNameDlg.getChild("cancel") self.ui_test.close_dialog_through_button(xCancelBtn) self.ui_test.close_doc()