def test_insert_from_mime_data(self): # ------------------------------------------ class TstSource: # noinspection PyPep8Naming @staticmethod def hasImage(): return True @staticmethod def formats(): return ["image/png"] # noinspection PyPep8Naming @staticmethod def imageData(): return QImage() # ------------------------------------------ diff(self.text.toHtml()) with patch.object(sys, 'platform', "windows"): self.editor._insert_from_mime_data(TstSource()) changed = diff(self.text.toHtml()) self.assertTrue('image' in changed["add"])
def test_insert_table(self): diff(self.text.toHtml()) table = self.editor.view.toolbar.controls["table"] self.test.mouse_click(table, QPoint(1, 1)) self.test.mouse_click(table._colors_widget._clrbtn[35], QPoint(1, 1)) changed = diff(self.text.toHtml()) self.test.sleep() self.assertTrue('table' in changed["add"])
def test_fix_word(self): self.editor._cursor_fix_word = True self._cursor_to_change_word = self.text.textCursor() word = "FIX-WORD" diff(self.text.toHtml()) self.editor._fix_word(word) changed = diff(self.text.toHtml()) self.assertTrue(word in changed["add"])
def test_number_list(self): diff(self.text.toHtml()) self.test.wrd_click(self.text, "!!!") number = self.editor.view.toolbar.controls["number"] self.test.mouse_click(number, QPoint(1, 1)) changed = diff(self.text.toHtml()) self.assertTrue('<ol' in changed["add"]) self.test.sleep()
def test_list(self): diff(self.text.toHtml()) self.test.wrd_click(self.text, "!!!") list_ = self.editor.view.toolbar.controls["list"] self.test.mouse_click(list_, QPoint(1, 1)) changed = diff(self.text.toHtml()) self.assertTrue('<ul' in changed["add"]) self.test.sleep()
def test_horizontal_line(self): diff(self.text.toHtml()) self.test.mouse_click(self.text.viewport(), QPoint(200, 51)) hline = self.editor.view.toolbar.controls["hline"] self.test.mouse_click(hline, QPoint(1, 1)) changed = diff(self.text.toHtml()) self.assertTrue('background-color:#c1c1c1' in changed["add"]) self.test.sleep()
def test_insert_image(self): diff(self.text.toHtml()) self.test.wrd_click(self.text, "!!!") image = self.editor.view.toolbar.controls["image"] with patch.object(QFileDialog, "exec_", returning_value=True): self.test.mouse_click(image, QPoint(1, 1)) changed = diff(self.text.toHtml()) self.assertTrue('image' in changed["add"]) self.test.sleep()
def test_change_image_size(self): diff(self.text.toHtml()) param = ( QImage(), 123, 1, "png", ) with patch.object(ImageSize, "exec_", returning_value=True): self.editor._change_image_size(param) changed = diff(self.text.toHtml()) self.assertTrue('width="123"' in changed["add"])
def test_align_menu(self): diff(self.text.toHtml()) align = self.editor.view.toolbar.controls["align"] self.test.mouse_click(align, QPoint(1, 1)) # align.click() trigger() self.test.sleep() self.test.mouse_click(align._colors_widget._clrbtn[2], QPoint(3, 3)) # TODO: . # !!!! -------------------------------------------------------!!!! # !!!! I do not know how to select an item and close the menu !!!! # !!!! -------------------------------------------------------!!!! # QTest.mouseClick(self.interactive.controls["ALIGN"], # Qt.LeftButton, Qt.NoModifier, QPoint(30, 10)) self.test.sleep() changed = diff(self.text.toHtml()) self.assertTrue("right" in changed["add"])
def test_background_color(self): self.test.wrd_d_click(self.text, "WdItOr") diff(self.text.toHtml()) color = self.editor.view.toolbar.controls["background-color"] with patch.object(color, '_get_color', return_value=QColor("blue")): self.test.mouse_click(color, QPoint(1, 1)) self.test.sleep() self.test.mouse_click(color._colors_widget.clrbtn[-1], QPoint(3, 3)) self.test.sleep() changed = diff(self.text.toHtml()) self.assertTrue("color:" + QColor("blue").name() in changed["add"]) diff(self.text.toHtml()) self.test.wrd_d_click(self.text, "YOU") with patch.object(color, '_get_color', return_value=QColor("yellow")): self.test.mouse_click(color, QPoint(1, 1)) self.test.sleep() color._colors_widget.other_color_() changed = diff(self.text.toHtml()) self.assertTrue("background-color:" + QColor("yellow").name() in changed["add"]) self.test.wrd_click(self.text, "rld", delay=1)
def test_set_bold(self): self.test.wrd_d_click(self.text, "rld") self.test.key_clicks(self.text, "World.upper()=WORLD", delay=1) bold = self.editor.view.toolbar.controls["bold"] self.test.wrd_d_click(self.text, "WdItOr") diff(self.text.toHtml()) self.test.mouse_click(bold, QPoint(1, 1), delay=1) changed = diff(self.text.toHtml()) self.assertTrue("font-weight:600" in changed["add"]) self.assertTrue(bold.isChecked()) self.test.wrd_click(self.text, "llo") self.assertFalse(bold.isChecked()) self.test.wrd_click(self.text, "dItOr") self.assertTrue(bold.isChecked()) diff(self.text.toHtml()) self.test.wrd_d_click(self.text, "WdItOr") self.test.mouse_click(bold, QPoint(1, 1), delay=1) changed = diff(self.text.toHtml()) self.assertFalse(bold.isChecked()) self.assertTrue("font-weight:600" in changed["del"])
def test_change_size(self): fn = self.editor.view.toolbar.controls["font-size"] self.test.wrd_d_click(self.text, "WdItOr") diff(self.text.toHtml()) # select all text self.test.key_click(fn, Qt.Key_A, "", Qt.ControlModifier) self.test.key_clicks(fn, "50", delay=1) changed = diff(self.text.toHtml()) self.assertTrue("font-size:50pt" in changed["add"]) self.test.wrd_d_click(self.text, "Hello") diff(self.text.toHtml()) # select all text self.test.key_click(fn, Qt.Key_A, "", Qt.ControlModifier) self.test.key_clicks(fn, "5", delay=1) changed = diff(self.text.toHtml()) self.assertTrue("font-size:5pt" in changed["add"]) self.test.wrd_click(self.text, "", delay=1) self.test.wrd_click(self.text, "dItOr", delay=1) self.assertEqual(fn.value(), 50) self.test.wrd_click(self.text, "llo", delay=1) self.assertEqual(fn.value(), 5)
def test_search_replace(self): txt = self.editor._view.text search = self.editor._view.search_replace.controls["search-edit"] replace = self.editor._view.search_replace.controls["replace-edit"] cs_box = self.editor._view.search_replace.controls["cs-box"] search.setText("HELLO") self.assertTrue(self.editor._search()) self.test.wrd_click(self.text, "WdItOr", delay=1) self.assertTrue(self.editor._search(True)) self.test.wrd_click(self.text, "WdItOr", delay=1) cs_box.setChecked(True) self.editor._search() self.assertFalse(self.editor._search(False)) self.test.wrd_click(self.text, "WdItOr", delay=1) self.assertFalse(self.editor._search(True)) self.editor.search(show_msg=False) search.setText("Hello") replace.setText("REPLACE") diff(txt.toHtml()) self.assertTrue(self.editor._search(True)) self.editor._replace() changed = diff(txt.toHtml()) self.assertTrue("REPLACE" in changed["add"]) search.setText("REPLACE") replace.setText("XXX") diff(txt.toHtml()) self.assertTrue(self.editor._search(True)) with patch.object(QMessageBox, 'question', return_value=QMessageBox.No): self.editor._replace_all() with patch.object(QMessageBox, 'question', return_value=QMessageBox.Yes): self.editor._replace_all() changed = diff(txt.toHtml()) self.assertTrue("XXX" in changed["add"]) search.setText("!-!-!-!") self.editor._replace_all() self.editor._view.show_hide_search_panel(Qt.Key_Escape)
def test_set_format_text(self): diff(self.text.toHtml()) self.editor.doc.insert_table({ "padding": 0, "space": 0, "rows": 3, "cols": 2 }) changed = diff(self.text.toHtml()) self.assertTrue('table' in changed["add"]) self.test.sleep() diff(self.text.toHtml()) self.editor._set_format_text() changed = diff(self.text.toHtml()) self.assertTrue('table' in changed["del"]) self.test.sleep() self.editor._set_format_html()
def test_change_font(self): fn = self.editor.view.toolbar.controls["font-name"] diff(self.text.toHtml()) self.test.wrd_d_click(self.text, "WdItOr") # select all text self.test.key_click(fn, Qt.Key_A, "", Qt.ControlModifier, delay=1) self.test.key_clicks(fn, "Arial Black") changed = diff(self.text.toHtml()) self.assertTrue("font-family:'Arial Black'" in changed["add"]) diff(self.text.toHtml()) self.test.wrd_d_click(self.text, "Hello") self.test.key_click(fn, Qt.Key_A, "", Qt.ControlModifier, delay=1) self.test.key_clicks(fn, "Courier New") changed = diff(self.text.toHtml()) self.assertTrue("font-family:'Courier New'" in changed["add"]) self.test.wrd_click(self.text, "dItOr") self.assertEqual(fn.currentText(), "Arial Black") self.test.sleep() self.test.wrd_click(self.text, "llo") self.assertEqual(fn.currentText(), "Courier New") self.test.sleep()
def test_diff(self): diff("Hello") change = diff("HELLO") self.assertEqual(change["add"], "ELLO") self.assertEqual(change["del"], "ello")
def test_context_menu(self): self.test.wrd_click(self.text, "rld") doc = self.editor.doc table = doc.insert_table({ "padding": 0, "space": 0, "rows": 3, "cols": 2 }) cc = table.cellAt(2, 1) cc.firstCursorPosition().insertText("TABLE") doc.change(cc.firstCursorPosition()) # copy text in clipboard self.test.wrd_d_click(self.text, "TABLE", delay=1) with patch.object(self.text, 'hasFocus', return_value=True): self.test.key_click(self.text, Qt.Key_C, "", Qt.ControlModifier, delay=1) time.sleep(0.51) QApplication.processEvents() pos = self.test.get_xy_for_word(self.text, "TABLE") self.test.wrd_click(self.text, "TABLE", delay=1) def key_switcher_params(widget): paste_txt = QCoreApplication.translate("@default", "Paste") paste_act = ([ a for a in widget.actions() if a.text().split("\t")[0].replace("&", "") == paste_txt ])[0] test = QTestHelper() test.sleep() widget.setActiveAction(paste_act) test.sleep() test.key_click(widget, Qt.Key_Enter) diff(self.text.toHtml()) self.test.handle_popup_widget(key_switcher_params) self.editor.view.text.customContextMenuRequested.emit(pos) self.test.sleep(1) changed = diff(self.text.toHtml()) self.assertTrue("TABLE" in changed["add"]) # - test image - self.editor._doc.ins_image(QImage(), "png", 1, 1) def image_param(widget): image_txt = QCoreApplication.translate("@default", "Change size of image") image_act = ([ a for a in widget.actions() if a.text().split("\t")[0].replace("&", "") == image_txt ]) test = QTestHelper() test.sleep() # check item in menu self.assertEqual(len(image_act), 1) widget.hide() self.test.handle_popup_widget(image_param) with patch.object(self.editor._doc, "in_image", returning_value=True): self.editor.view.text.selectAll() self.editor.view.text.customContextMenuRequested.emit(pos) self.test.sleep() # - test spellchecker - def spell_no(widget): image_txt = QCoreApplication.translate("@default", "Add to the dictionary") image_act = ([ a for a in widget.actions() if a.text().split("\t")[0].replace("&", "") == image_txt ]) test = QTestHelper() test.sleep() # check item in menu self.assertEqual(len(image_act), 1) widget.hide() with patch.object(self.text, 'hasFocus', return_value=True): self.test.key_clicks(self.text, " hello_hello") self.test.wrd_click(self.text, "hello_hello") self.test.handle_popup_widget(spell_no) self.editor.view.text.customContextMenuRequested.emit(pos) self.test.wrd_click(self.text, "") with patch.object(self.text, 'hasFocus', return_value=True): self.test.key_clicks(self.text, " hell2 ") self.test.wrd_click(self.text, "hell2") self.test.handle_popup_widget(spell_no) self.editor.view.text.customContextMenuRequested.emit(pos)