Exemplo n.º 1
0
    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"])
Exemplo n.º 2
0
 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"])
Exemplo n.º 3
0
 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"])
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
    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()
Exemplo n.º 6
0
    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()
Exemplo n.º 7
0
    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()
Exemplo n.º 8
0
 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"])
Exemplo n.º 9
0
 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"])
Exemplo n.º 10
0
    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)
Exemplo n.º 11
0
    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"])
Exemplo n.º 12
0
    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)
Exemplo n.º 13
0
    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)
Exemplo n.º 14
0
    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()
Exemplo n.º 15
0
    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()
Exemplo n.º 16
0
 def test_diff(self):
     diff("Hello")
     change = diff("HELLO")
     self.assertEqual(change["add"], "ELLO")
     self.assertEqual(change["del"], "ello")
Exemplo n.º 17
0
    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)