示例#1
0
    def _test_clone(self, app, *args):
        c = Cursor()
        c.set_implementation(MockCursor())
        c.go(300)
        c.mark()
        self.assertEqual(c.pos, 300)
        c1 = c.clone()
        self.assertEqual(c1.pos, 300)
        self.assertEqual(c1.eol_implementation, c.eol_implementation)
        self.assertEqual(c1.file_id, c.file_id)
        self.assertEqual(c1.filename, c.filename)
        self.assertEqual(c1.get_marked_count(), 1)
        c.mark_all(False)
        self.assertEqual(c1.get_marked_count(), c.get_marked_count())

        c1.go(200)
        self.assertEqual(c1.pos, 200)

        c.go_eol()
        c1 = c.clone()
        self.assertEqual(c1.pos, c1.pos)
        self.assertEqual(c1.eol_implementation, c.eol_implementation)
        self.assertEqual(c1.file_id, c.file_id)
        self.assertEqual(c1.filename, c.filename)
        self.assertEqual(1000, c1.pos)
        c1.go_previous()
        self.assertEqual(999, c1.pos)
        self.assertEqual(999, c1.file_id)

        app.stop()
示例#2
0
    def _test_advanced_clone(self, app, *args):
        c = Cursor()
        c.set_implementation(MockCursor())
        c.go(990)
        c.mark()
        c.go_next()
        c.cut_marked()

        c.go_eol()
        c.paste_marked(append=True, update_cursor=False)
        c1 = c.clone()
        c1.go(999)
        self.assertFalse(c1.is_eol())
        self.assertEqual(c1.pos, 999)
        self.assertEqual(c1.file_id, 990)

        app.stop()
示例#3
0
    def _test_advanced_mark(self, app, *args):
        def test_eol(c):
            self.assertTrue(c.is_eol())
            self.assertEqual(0, c.pos)
            self.assertIsNone(c.file_id)
            self.assertEqual(0, len(c))

        c = Cursor()
        c.set_implementation(MockCursor())
        c.go(500)
        c.mark_all()
        c.cut_marked()
        test_eol(c)
        c.go_previous()
        test_eol(c)
        c.go_next()
        test_eol(c)
        c.go_first()
        test_eol(c)
        c.go_last()
        test_eol(c)
        c.go_eol()
        test_eol(c)
        c.go(200)
        test_eol(c)
        c.go_previous()
        test_eol(c)
        c.go_next()
        test_eol(c)

        c.paste_marked()
        self.assertFalse(c.is_eol())
        self.assertEqual(1000, len(c))
        self.assertEqual(0, c.pos)
        self.assertEqual(0, c.file_id)
        c.go_next()
        self.assertEqual(1, c.pos)
        self.assertEqual(1, c.file_id)

        app.stop()
示例#4
0
    def _test_mark(self, app, *args):
        c = Cursor()
        c.set_implementation(MockCursor())
        self.assertFalse(c.get_mark())

        # test marking
        c.mark()
        self.assertTrue(c.get_mark())
        c.go_next()
        self.assertFalse(c.get_mark())
        c.mark(True)
        self.assertTrue(c.get_mark())
        c.go_next()
        self.assertFalse(c.get_mark())
        c.go_first()
        self.assertTrue(c.get_mark())

        self.assertEqual(2, c.get_marked_count())

        # test unmarking
        c.mark()
        self.assertFalse(c.get_mark())
        c.go_next()
        c.mark()
        self.assertFalse(c.get_mark())
        c.go_next()
        c.mark(False)
        self.assertFalse(c.get_mark())
        self.assertEqual(0, c.get_marked_count())

        # test cut & paste
        c.go(5)
        self.assertEqual(5, c.file_id)
        c.mark()
        c.go_first()
        c.cut_marked()
        self.assertEqual(999, len(c))
        c.go(5)
        self.assertEqual(5, c.pos)
        self.assertEqual(6, c.file_id)
        c.go(1)
        c.paste_marked()
        self.assertEqual(1000, len(c))
        self.assertEqual(1, c.pos)
        self.assertEqual(5, c.file_id)
        c.go(10)
        for i in range(20):
            c.mark()
            c.go_next()
        c.go(10)
        c.cut_marked()
        self.assertEqual(10, c.pos)
        self.assertEqual(30, c.file_id)
        c.go_next()
        self.assertEqual(11, c.pos)
        self.assertEqual(31, c.file_id)
        c.go_previous()
        c.paste_marked()
        self.assertEqual(10, c.pos)
        self.assertEqual(10, c.file_id)
        c.go_next()
        self.assertEqual(11, c.pos)
        self.assertEqual(11, c.file_id)

        # reset cursor
        c = Cursor()
        c.set_implementation(MockCursor())

        # test special cases like first and last
        c.go_first()
        c.mark()
        c.cut_marked()
        self.assertEqual(0, c.pos)
        self.assertEqual(1, c.file_id)
        c.go_previous()
        self.assertEqual(0, c.pos)
        self.assertEqual(1, c.file_id)
        c.go_next()
        self.assertEqual(1, c.pos)
        self.assertEqual(2, c.file_id)
        c.paste_marked()
        self.assertEqual(1, c.pos)
        self.assertEqual(0, c.file_id)
        c.go_next()
        self.assertEqual(2, c.pos)
        self.assertEqual(2, c.file_id)

        c.go_last()
        self.assertEqual(999, c.pos)
        self.assertEqual(999, c.file_id)
        c.mark()
        self.assertTrue(c.get_mark())
        c.cut_marked()
        self.assertEqual(999, c.pos)
        self.assertIsNone(c.file_id)
        self.assertTrue(c.is_eol())
        c.paste_marked()
        self.assertEqual(999, c.pos)
        self.assertEqual(999, c.file_id)
        self.assertFalse(c.is_eol())

        # reset cursor
        c = Cursor()
        c.set_implementation(MockCursor())

        # test cut all
        c.mark_all()
        c.cut_marked()
        self.assertTrue(c.is_eol())
        self.assertEqual(0, c.pos)
        self.assertIsNone(c.file_id)
        self.assertEqual(0, len(c))
        c.paste_marked()
        self.assertFalse(c.is_eol())
        self.assertEqual(1000, len(c))
        self.assertEqual(0, c.pos)
        self.assertEqual(0, c.file_id)
        c.go_next()
        self.assertEqual(1, c.pos)
        self.assertEqual(1, c.file_id)
        c.go_previous()
        c.go_previous()
        self.assertEqual(0, c.pos)
        self.assertEqual(0, c.file_id)
        c.go_last()
        self.assertEqual(999, c.pos)
        self.assertEqual(999, c.file_id)
        self.assertFalse(c.is_eol())
        c.go_next()
        self.assertTrue(c.is_eol())
        self.assertEqual(1000, c.pos)

        c.mark_all(True)
        c.cut_marked()
        c.cut_marked()
        self.assertTrue(c.is_eol())
        self.assertEqual(0, c.pos)
        self.assertIsNone(c.file_id)
        self.assertEqual(0, len(c))
        c.paste_marked()
        self.assertFalse(c.is_eol())
        self.assertEqual(1000, len(c))
        self.assertEqual(0, c.pos)
        self.assertEqual(0, c.file_id)

        app.stop()
示例#5
0
    def _test_move_items(self, app, *args):
        c = Cursor()
        c.set_implementation(MockCursor())
        c.go(5)
        c.move_to(4)
        self.assertEqual(4, c.pos)
        self.assertEqual(5, c.file_id)
        c.go(5)
        self.assertEqual(5, c.pos)
        self.assertEqual(4, c.file_id)

        c.go(20)
        c.move_to(10)
        self.assertEqual(10, c.pos)
        self.assertEqual(20, c.file_id)
        c.go_next()
        self.assertEqual(11, c.pos)
        self.assertEqual(10, c.file_id)
        c.go_next()
        self.assertEqual(12, c.pos)
        self.assertEqual(11, c.file_id)
        c.go(20)
        self.assertEqual(20, c.pos)
        self.assertEqual(19, c.file_id)
        c.go_next()
        self.assertEqual(21, c.pos)
        self.assertEqual(21, c.file_id)
        c.go_previous()
        self.assertEqual(20, c.pos)
        self.assertEqual(19, c.file_id)

        c.go(30)
        c.move_to(35)
        self.assertEqual(35, c.pos)
        self.assertEqual(30, c.file_id)
        c.go_next()
        self.assertEqual(36, c.pos)
        self.assertEqual(36, c.file_id)
        c.go(30)
        self.assertEqual(30, c.pos)
        self.assertEqual(31, c.file_id)
        c.go(34)
        self.assertEqual(34, c.pos)
        self.assertEqual(35, c.file_id)

        # cases with first place

        c.go_first()
        c.move_to(2)
        self.assertEqual(2, c.pos)
        self.assertEqual(0, c.file_id)
        c.go_first()
        self.assertEqual(0, c.pos)
        self.assertEqual(1, c.file_id)
        c.go(500)
        c.move_to(0)
        self.assertEqual(0, c.pos)
        self.assertEqual(500, c.file_id)
        c.go_next()
        self.assertEqual(1, c.pos)
        self.assertEqual(1, c.file_id)
        c.go_previous()
        c.go_previous()
        self.assertEqual(0, c.pos)
        self.assertEqual(500, c.file_id)

        # cases with last place
        c.go_last()
        self.assertEqual(999, c.pos)
        self.assertEqual(999, c.file_id)
        c.move_to(990)
        self.assertEqual(990, c.pos)
        self.assertEqual(999, c.file_id)
        c.go_last()
        self.assertEqual(999, c.pos)
        self.assertEqual(998, c.file_id)
        c.go_next()
        self.assertEqual(1000, c.pos)
        self.assertTrue(c.is_eol())
        c.go_next()
        self.assertEqual(1000, c.pos)
        self.assertTrue(c.is_eol())
        c.go_last()
        self.assertEqual(999, c.pos)
        self.assertEqual(998, c.file_id)
        c.go(995)
        c.move_to(999)
        self.assertEqual(999, c.pos)
        self.assertEqual(994, c.file_id)
        c.go_last()
        self.assertEqual(999, c.pos)
        self.assertEqual(994, c.file_id)
        c.go_next()
        self.assertEqual(1000, c.pos)
        self.assertTrue(c.is_eol())
        c.go_previous()
        self.assertEqual(999, c.pos)
        self.assertEqual(994, c.file_id)

        # case with eol
        c.go(999)
        c.move_to(1000)
        self.assertEqual(999, c.pos)
        self.assertEqual(994, c.file_id)
        c.go_eol()
        c.move_to(700)
        self.assertEqual(1000, c.pos)
        self.assertTrue(c.is_eol())
        c.go_previous()
        self.assertEqual(999, c.pos)
        self.assertEqual(994, c.file_id)
        c.go(700)
        self.assertEqual(700, c.pos)
        self.assertEqual(700, c.file_id)
        self.assertFalse(c.is_eol())
        c.go_eol()
        self.assertEqual(1000, c.pos)
        self.assertTrue(c.is_eol())
        c.go_previous()
        self.assertEqual(999, c.pos)
        self.assertEqual(994, c.file_id)
        c.go_eol()
        c.go_first()
        self.assertEqual(0, c.pos)
        self.assertEqual(500, c.file_id)
        c.go_eol()
        for i in range(3):
            c.go_next()
        self.assertEqual(1000, c.pos)
        self.assertTrue(c.is_eol())

        app.stop()
示例#6
0
    def _test_navigate(self, app, *args):
        c = Cursor()
        c.set_implementation(MockCursor())
        self.assertEqual(0, c.pos)
        c.go_next()
        self.assertEqual(1, c.pos)
        c.go_previous()
        self.assertEqual(0, c.pos)
        for i in range(5):
            c.go_next()
        self.assertEqual(5, c.pos)
        c.go_first()
        self.assertEqual(0, c.pos)
        c.go_previous()
        self.assertEqual(0, c.pos)
        c.go(200)
        self.assertEqual(200, c.pos)
        self.assertFalse(c.is_eol())
        c.go_last()
        self.assertEqual(999, c.pos)
        c.go_next()
        self.assertTrue(c.is_eol())
        self.assertEqual(1000, c.pos)
        c.go_next()
        self.assertTrue(c.is_eol())
        self.assertEqual(1000, c.pos)
        c.go_previous()
        self.assertEqual(999, c.pos)

        c.go_eol()
        self.assertTrue(c.is_eol())
        self.assertEqual(1000, c.pos)
        c.go_first()
        self.assertEqual(0, c.pos)
        self.assertFalse(c.is_eol())
        c.go_eol()
        c.go_eol()
        self.assertTrue(c.is_eol())
        self.assertEqual(1000, c.pos)

        c.go(500)
        self.assertEqual(500, c.pos)
        self.assertFalse(c.is_eol())

        c.go(600)
        self.assertEqual(600, c.pos)
        self.assertFalse(c.is_eol())

        c.go(-5)
        self.assertEqual(0, c.pos)
        self.assertFalse(c.is_eol())

        c.go(1001)
        self.assertTrue(c.is_eol())
        self.assertEqual(1000, c.pos)

        c.go(2000)
        self.assertTrue(c.is_eol())
        self.assertEqual(1000, c.pos)
        c.go_first()
        c.go(2000)
        self.assertTrue(c.is_eol())
        self.assertEqual(1000, c.pos)
        c.go_previous()
        self.assertEqual(999, c.pos)

        app.stop()