示例#1
0
 def setUp(self):
     self.main_window = self.create_main_window()
     self.main_control = MainControl(self.main_window)
     self.main_control.init()
     self.diagram = self.create_full_diagram(main_window=self.main_window)
     self.main_window.work_area.add_diagram(self.diagram)
     self.diagram.set_modified(False)
示例#2
0
    def test_exit(self):
        self.main_control.exit()

        self.main_window = self.create_main_window()
        self.main_control = MainControl(self.main_window)
        self.main_control.init()
        self.main_control.new()

        diagram = self.main_window.work_area.get_current_diagram()
        diagram.set_modified(True)

        t1 = threading.Thread(target=self.main_control.exit, args=())
        t1.start()
        sleep(1)
        if self.main_window.work_area.confirm:
            self.main_window.work_area.confirm.response(
                Gtk.ResponseType.CANCEL)
        self.refresh_gui()
        t1.join()
示例#3
0
 def setUp(self):
     """Do the test basic setup."""
     win = MainControl(MainWindow())
     self.diagram_control = DiagramControl(win)
 def setUp(self):
     self.main_control = MainControl(self.create_main_window())
     self.main_control.init()
     self.main_control.new()
class TestMainControl(TestBase):
    def setUp(self):
        self.main_control = MainControl(self.create_main_window())
        self.main_control.init()
        self.main_control.new()

    def test_about(self):
        self.main_control.about()

    def test_add_block(self):
        self.main_control.add_block(self.create_block())

    def test_add_comment(self):
        self.main_control.add_comment()

    def test_add_extension(self):
        self.main_control.add(self.create_block())
        self.main_control.add(self.create_code_template())
        self.main_control.add(self.create_port())

    def test_align_bottom(self):
        self.main_control.align_bottom()

    def test_align_left(self):
        self.main_control.align_left()

    def test_align_right(self):
        self.main_control.align_right()

    def test_align_top(self):
        self.main_control.align_top()

    def test_clear_console(self):
        self.main_control.clear_console()

    def test_close(self):
        self.main_control.close()

    def test_collapse_all(self):
        self.main_control.collapse_all()

    def test_copy(self):
        self.main_control.copy()

    def test_cut(self):
        self.main_control.cut()

    def test_delete(self):
        self.main_control.delete()

    def test_delete_extension(self):
        self.main_control.delete(self.create_block())
        self.main_control.delete(self.create_code_template())
        self.main_control.delete("port_key")

    def test_exit(self):
        self.main_control.exit()

    def test_export_diagram(self):
        self.main_control.export_diagram()

    def test_get_clipboard(self):
        self.main_control.get_clipboard()

    def test_get_selected_block(self):
        self.main_control.get_selected_block()

    def test_init(self):
        self.main_control.init()

    def test_new(self):
        self.main_control.new()

    def test_open(self):
        self.main_control.open("Test")

    def test_paste(self):
        self.main_control.paste()

    def test_preferences(self):
        self.main_control.preferences()

    def test_publish(self):
        self.main_control.publish()

    def test_redo(self):
        self.main_control.redo()

    def test_redraw(self):
        self.main_control.redraw(True)
        self.main_control.redraw(False)

    def test_reset_clipboard(self):
        self.main_control.reset_clipboard()

    def test_run(self):
        self.main_control.run()

    def test_save(self):
        self.main_control.save()
        self.main_control.save(save_as=True)

    def test_save_as(self):
        self.main_control.save_as()

    def test_save_as_example(self):
        self.main_control.save_as_example()

    def test_save_source(self):
        self.main_control.save_source()
        self.main_control.save_source(codes="Test")
        self.main_control.save_source(generator="Test")

    def test_search(self):
        self.main_control.search("Test")

    def test_select_all(self):
        self.main_control.select_all()

    def test_select_open(self):
        self.main_control.select_open()

    def test_set_block(self):
        self.main_control.set_block(self.create_block())

    def test_set_recent_files(self):
        self.main_control.set_recent_files("Test")

    def test_show_grid(self):
        self.main_control.show_grid(None)

    def test_stop(self):
        self.main_control.stop(None, None)

    def test_uncollapse_all(self):
        self.main_control.uncollapse_all()

    def test_undo(self):
        self.main_control.undo()

    def test_update_all(self):
        self.main_control.update_all()

    def test_update_blocks(self):
        self.main_control.update_blocks()

    def test_view_source(self):
        self.main_control.view_source()

    def test_zoom_in(self):
        self.main_control.zoom_in()

    def test_zoom_normal(self):
        self.main_control.zoom_normal()

    def test_zoom_out(self):
        self.main_control.zoom_out()
示例#6
0
 def setUp(self):
     """Do the test basic setup."""
     win = MainWindow()
     self.main_control = MainControl(win)
示例#7
0
class TestMainControl(TestCase):
    def setUp(self):
        """Do the test basic setup."""
        win = MainWindow()
        self.main_control = MainControl(win)

    # ----------------------------------------------------------------------
    def test_new(self):
        self.assertIsNone(self.main_control.new())

    # ----------------------------------------------------------------------
    def test_select_open(self):
        self.assertIsNone(self.main_control.select_open())

    # ----------------------------------------------------------------------
    def test_open(self):
        file_name = "test/files_for_test/And.mscd"
        self.assertIsNone(self.main_control.open(file_name))
        file_name = "app_data/teste/And.mscd"
        self.assertIsNone(self.main_control.open(file_name))
        file_name = "app_data/teste/Outro.mscd"
        self.assertIsNone(self.main_control.open(file_name))
        file_name = "app_data/testando"
        self.assertIsNone(self.main_control.open(file_name))
        file_name = "app_data/testando/"
        self.assertIsNone(self.main_control.open(file_name))
        file_name = "app_data/testando/testando.mscd"
        self.assertIsNone(self.main_control.open(file_name))

    # ----------------------------------------------------------------------
    def test_close(self):
        self.assertIsNotNone(self.main_control.close())

    # ----------------------------------------------------------------------
    def test_save(self):
        save_as = False
        self.assertIsNone(self.main_control.save(save_as))
        save_as = True
        self.assertIsNone(self.main_control.save(save_as))

    # ----------------------------------------------------------------------
    def test_save_as(self):
        self.assertIsNone(self.main_control.save_as())

    # ----------------------------------------------------------------------
    #def test_rename_tab(self):
    #    self.main_control.rename_tab()

    # ----------------------------------------------------------------------
    def test_export_diagram(self):
        self.assertIsNone(self.main_control.export_diagram())

    # ----------------------------------------------------------------------
    def test_exit(self):
        widget1 = None
        data1 = None
        self.assertIsNone(self.main_control.exit(widget1, data1))

        #widget1 = O QUE E ESSE WIDGET?
        #data1 = O QUE E ESSE DATA?
        #self.assertTrue(self.main_control.exit(widget1, data))

    # ----------------------------------------------------------------------
    def test_select_all(self):
        self.assertIsNone(self.main_control.select_all())

    # ----------------------------------------------------------------------
    def test_cut(self):
        self.assertIsNone(self.main_control.cut())

    # ----------------------------------------------------------------------
    def test_copy(self):
        self.assertIsNone(self.main_control.copy())

    # ----------------------------------------------------------------------
    def test_paste(self):
        self.assertIsNone(self.main_control.paste())

    # ----------------------------------------------------------------------
    def test_get_clipboard(self):
        self.assertIsNotNone(self.main_control.get_clipboard())
        #self.assertEqual("expected", self.main_control.get_clipboard())

    # ----------------------------------------------------------------------
    def test_reset_clipboard(self):
        self.assertIsNone(self.main_control.reset_clipboard())

    # ----------------------------------------------------------------------
    def test_preferences(self):
        self.assertIsNone(self.main_control.preferences())

    # ----------------------------------------------------------------------
    def test_delete(self):
        self.assertIsNone(self.main_control.delete())

    # ----------------------------------------------------------------------
    def test_run(self):
        code = None
        self.assertIsNone(self.main_control.run(code))
        code = "Teste"
        self.assertIsNone(self.main_control.run(code))

    # ----------------------------------------------------------------------
    def test_save_source(self):
        code = None
        self.assertIsNone(self.main_control.save_source(code))
        code = "Teste"
        self.assertIsNone(self.main_control.save_source(code))

    # ----------------------------------------------------------------------
    def test_view_source(self):
        self.assertIsNone(self.main_control.view_source())

    # ----------------------------------------------------------------------
    def test_about(self):
        self.assertIsNone(self.main_control.about())

    # ----------------------------------------------------------------------
    def test_search(self):
        query = None
        self.assertIsNone(self.main_control.search(query))
        query = "Teste"
        self.assertIsNone(self.main_control.search(query))

    # ----------------------------------------------------------------------
    def test_set_block(self):
        # from mosaicode.GUI.block import Block
        # from mosaicode.GUI.diagram import Diagram as Diagram
        # from mosaicode.model.blockmodel import BlockModel as BlockModel
        #
        # block = Block(Diagram, BlockModel)
        # self.assertIsNone(self.main_control.set_block(block))

        diagram = Diagram(MainWindow())
        blockmodel = BlockModel()
        block = Block(diagram, blockmodel)
        self.assertIsNone(self.main_control.set_block(block))

        #block2 = None
        #self.assertIsNone(self.main_control.set_block(block2))

    # ----------------------------------------------------------------------
    def test_append_status_log(self):
        self.assertIsNone(self.main_control.append_status_log("TEXT"))
        #self.assertIsNone(self.main_control.append_status_log(None))

    # ----------------------------------------------------------------------
    def test_add_block(self):
        #from mosaicode.GUI.block import Block
        #from mosaicode.GUI.diagram import Diagram as Diagram
        #from mosaicode.model.blockmodel import BlockModel as BlockModel

        #block = Block(Diagram, BlockModel)
        self.assertFalse(self.main_control.add_block(None))
        #self.assertFalse(self.main_control.add_block(block))
        self.assertFalse(self.main_control.add_block("TESTE"))

    # ----------------------------------------------------------------------
    def test_get_selected_block(self):
        #self.assertIsNotNone(self.main_control.get_selected_block())
        self.assertIsNone(self.main_control.get_selected_block())

    # ----------------------------------------------------------------------
    def test_zoom_in(self):
        self.assertIsNone(self.main_control.zoom_in())

    # ----------------------------------------------------------------------
    def test_zoom_out(self):
        self.assertIsNone(self.main_control.zoom_out())

    # ----------------------------------------------------------------------
    def test_zoom_normal(self):
        self.assertIsNone(self.main_control.zoom_normal())

    # ----------------------------------------------------------------------
    def test_show_block_property(self):
        diagram = Diagram(MainWindow())
        blockmodel = BlockModel()
        block = Block(diagram, blockmodel)
        self.assertIsNone(self.main_control.show_block_property(block))

    # ----------------------------------------------------------------------
    def test_clear_console(self):
        self.assertIsNone(self.main_control.clear_console())

    # ----------------------------------------------------------------------
    def test_undo(self):
        self.assertIsNone(self.main_control.undo())

    # ----------------------------------------------------------------------
    def test_redo(self):
        self.assertIsNone(self.main_control.redo())

    # ----------------------------------------------------------------------
    def test_reload(self):
        self.assertIsNone(self.main_control.reload())

    # ---- METODOS DIFERENTES ------
    # ----------------------------------------------------------------------
    def test_align_top(self):
        self.assertFalse(self.main_control.align_top())

    # ----------------------------------------------------------------------
    def test_align_bottom(self):
        self.assertFalse(self.main_control.align_bottom())

    # ----------------------------------------------------------------------
    def test_align_left(self):
        self.assertFalse(self.main_control.align_left())

    # ----------------------------------------------------------------------
    def test_align_right(self):
        self.assertFalse(self.main_control.align_right())

    # ----------------------------------------------------------------------
    def test_redraw(self):
        show_grid = None
        self.assertIsNone(self.main_control.redraw(show_grid))

    # ----------------------------------------------------------------------
    def test_show_grid(self):
        event = "None"
        self.assertIsNone(self.main_control.show_grid(event))

    # ----------------------------------------------------------------------
    def test_code_template_manager(self):
        self.assertIsNone(self.main_control.code_template_manager())

    # ----------------------------------------------------------------------
    def test_block_manager(self):
        self.assertIsNone(self.main_control.block_manager())

    # ----------------------------------------------------------------------
    def test_port_manager(self):
        self.assertIsNone(self.main_control.port_manager())

    # ----------------------------------------------------------------------
    def test_add_code_template(self):
        #code_template = None
        #self.assertIsNone(self.main_control.add_code_template(code_template))
        from mosaicode.model.codetemplate import CodeTemplate

        code_template = CodeTemplate()

        code_template.type = "c"
        code_template.name = "TESTE"
        code_template.source = "xml"
        self.assertIsNone(self.main_control.add_code_template(code_template))

    # ----------------------------------------------------------------------
    def test_delete_code_template(self):
        #code_template_name = None
        #self.assertIsNone(self.main_control.delete_code_template(code_template_name))
        #from mosaicode.model.codetemplate import CodeTemplate

        code_template_name = "TESTE"
        self.assertIsNone(
            self.main_control.delete_code_template(code_template_name))

    # ----------------------------------------------------------------------
    def test_add_port(self):

        from mosaicode.model.port import Port

        port = Port()

        port.type = "c"
        port.language = "c"
        port.source = "xml"
        port.code = "xxxx"

        self.assertIsNone(self.main_control.add_port(port))

    # ----------------------------------------------------------------------
    def test_delete_port(self):

        from mosaicode.model.port import Port

        port = Port()

        port.type = "c"
        port.language = "c"
        port.source = "xml"
        port.code = "xxxx"

        self.assertIsNone(self.main_control.delete_port(port))

    # ----------------------------------------------------------------------
    def test_add_new_block(self):

        diagram = Diagram(MainWindow())
        blockmodel = BlockModel()
        block = Block(diagram, blockmodel)
        self.assertIsNone(self.main_control.add_new_block(block))

        # NÃO TRATA None
        # block = None
        # self.assertIsNone(self.main_control.add_new_block(block))

    # ----------------------------------------------------------------------
    def test_delete_block(self):

        diagram = Diagram(MainWindow())
        blockmodel = BlockModel()
        block = Block(diagram, blockmodel)
        self.assertIsNone(self.main_control.delete_block(block))

        # NÃO TRATA None
        # block = None
        # self.assertIsNone(self.main_control.delete_block(block))

    # ----------------------------------------------------------------------
    def test_update_all(self):
        self.assertIsNone(self.main_control.update_all())

    # ----------------------------------------------------------------------
    def test_print_ports(self):
        self.assertIsNone(self.main_control.print_ports())

    # ----------------------------------------------------------------------
    def test_print_blocks(self):
        self.assertIsNone(self.main_control.print_blocks())

    # ----------------------------------------------------------------------
    def test_print_templates(self):
        self.assertIsNone(self.main_control.print_templates())

    # ----------------------------------------------------------------------
    def test_export_extensions(self):
        self.assertIsNone(self.main_control.export_extensions(None))

    # ----------------------------------------------------------------------
    def test_export_python(self):
        self.assertIsNone(self.main_control.export_python())

    # ----------------------------------------------------------------------
    def test_export_python_dialog(self):
        self.assertIsNone(self.main_control.export_python_dialog())

    # ----------------------------------------------------------------------
    def test_export_xml(self):
        self.assertIsNone(self.main_control.export_xml())

    # ----------------------------------------------------------------------
    def test_export_xml_dialog(self):
        self.assertIsNone(self.main_control.export_xml_dialog())

    # ----------------------------------------------------------------------
    def test_add_recent_file(self):
        #prefs = ?
        from mosaicode.model.preferences import Preferences

        prefs = Preferences()

        file_name = "../files_for_test/output/Untitled.mscd"
        self.assertIsNone(self.main_control.add_recent_file(prefs, file_name))
示例#8
0
    def __init__(self):
        """
        This method is constructor.
        """
        System()
        Gtk.Window.__init__(self, title="Mosaicode")
        self.resize(System.properties.width, System.properties.height)
        self.main_control = MainControl(self)

        # GUI components
        self.menu = Menu(self)
        self.toolbar = Toolbar(self)
        self.search = SearchBar(self)
        self.block_notebook = BlockNotebook(self)
        self.property_box = PropertyBox(self)
        self.work_area = WorkArea(self)
        self.status = Status(self)
        self.block_menu = BlockMenu()
        self.menu.add_help()

        System.set_log(self.status)

        # vbox main
        # -----------------------------------------------------
        # | Menu
        # -----------------------------------------------------
        # | Toolbar
        # -----------------------------------------------------
        # | V Paned bottom
        # -----------------------------------------------------

        # First Vertical Box
        vbox_main = Gtk.VBox()
        self.add(vbox_main)
        vbox_main.pack_start(self.menu, False, True, 0)
        vbox_main.pack_start(self.toolbar, False, False, 0)
        self.vpaned_bottom = Gtk.Paned.new(Gtk.Orientation.VERTICAL)
        vbox_main.add(self.vpaned_bottom)

        # vpaned_bottom
        # -----------------------------------------------------
        # | hpaned_work_area
        # =====================================================
        # | status
        # -----------------------------------------------------

        self.hpaned_work_area = Gtk.HPaned()
        self.hpaned_work_area.connect("accept-position", self.__resize)
        self.hpaned_work_area.set_position(System.properties.hpaned_work_area)

        self.vpaned_bottom.add1(self.hpaned_work_area)
        self.vpaned_bottom.add2(self.__create_frame(self.status))
        self.vpaned_bottom.set_position(System.properties.vpaned_bottom)
        self.vpaned_bottom.set_size_request(50, 50)

        # hpaned_work_area
        # -----------------------------------------------------
        # | vbox_left      ||   work_area
        # -----------------------------------------------------
        vbox_left = Gtk.VBox(False, 0)
        self.hpaned_work_area.add1(vbox_left)
        self.hpaned_work_area.add2(self.work_area)

        # vbox_left
        # -----------------------------------------------------
        # |search
        # -----------------------------------------------------
        # |vpaned_left
        # -----------------------------------------------------

        vbox_left.pack_start(self.search, False, False, 0)
        self.vpaned_left = Gtk.VPaned()
        vbox_left.pack_start(self.vpaned_left, True, True, 0)

        # vpaned_left
        # -----------------------------------------------------
        # |blocks_tree_view
        # =====================================================
        # |property_box
        # -----------------------------------------------------

        self.vpaned_left.add1(self.__create_frame(self.block_notebook))
        self.vpaned_left.add2(self.__create_frame(self.property_box))
        self.vpaned_left.set_position(System.properties.vpaned_left)

        self.connect("delete-event", self.main_control.exit)
        self.connect("key-press-event", self.__on_key_press)
        self.connect("check-resize", self.__resize)

        self.main_control.init()
示例#9
0
class MainWindow(Gtk.Window):
    """
    This class contains methods related the MainWindow class.
    """
    def __init__(self):
        """
        This method is constructor.
        """
        System()
        Gtk.Window.__init__(self, title="Mosaicode")
        self.resize(System.properties.width, System.properties.height)
        self.main_control = MainControl(self)

        # GUI components
        self.menu = Menu(self)
        self.toolbar = Toolbar(self)
        self.search = SearchBar(self)
        self.block_notebook = BlockNotebook(self)
        self.property_box = PropertyBox(self)
        self.work_area = WorkArea(self)
        self.status = Status(self)
        self.block_menu = BlockMenu()
        self.menu.add_help()

        System.set_log(self.status)

        # vbox main
        # -----------------------------------------------------
        # | Menu
        # -----------------------------------------------------
        # | Toolbar
        # -----------------------------------------------------
        # | V Paned bottom
        # -----------------------------------------------------

        # First Vertical Box
        vbox_main = Gtk.VBox()
        self.add(vbox_main)
        vbox_main.pack_start(self.menu, False, True, 0)
        vbox_main.pack_start(self.toolbar, False, False, 0)
        self.vpaned_bottom = Gtk.Paned.new(Gtk.Orientation.VERTICAL)
        vbox_main.add(self.vpaned_bottom)

        # vpaned_bottom
        # -----------------------------------------------------
        # | hpaned_work_area
        # =====================================================
        # | status
        # -----------------------------------------------------

        self.hpaned_work_area = Gtk.HPaned()
        self.hpaned_work_area.connect("accept-position", self.__resize)
        self.hpaned_work_area.set_position(System.properties.hpaned_work_area)

        self.vpaned_bottom.add1(self.hpaned_work_area)
        self.vpaned_bottom.add2(self.__create_frame(self.status))
        self.vpaned_bottom.set_position(System.properties.vpaned_bottom)
        self.vpaned_bottom.set_size_request(50, 50)

        # hpaned_work_area
        # -----------------------------------------------------
        # | vbox_left      ||   work_area
        # -----------------------------------------------------
        vbox_left = Gtk.VBox(False, 0)
        self.hpaned_work_area.add1(vbox_left)
        self.hpaned_work_area.add2(self.work_area)

        # vbox_left
        # -----------------------------------------------------
        # |search
        # -----------------------------------------------------
        # |vpaned_left
        # -----------------------------------------------------

        vbox_left.pack_start(self.search, False, False, 0)
        self.vpaned_left = Gtk.VPaned()
        vbox_left.pack_start(self.vpaned_left, True, True, 0)

        # vpaned_left
        # -----------------------------------------------------
        # |blocks_tree_view
        # =====================================================
        # |property_box
        # -----------------------------------------------------

        self.vpaned_left.add1(self.__create_frame(self.block_notebook))
        self.vpaned_left.add2(self.__create_frame(self.property_box))
        self.vpaned_left.set_position(System.properties.vpaned_left)

        self.connect("delete-event", self.main_control.exit)
        self.connect("key-press-event", self.__on_key_press)
        self.connect("check-resize", self.__resize)

        self.main_control.init()

    # ----------------------------------------------------------------------
    def __on_key_press(self, widget, event=None):
        if event.state == \
                Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.MOD2_MASK:
            if event.keyval == Gdk.KEY_a:
                self.main_control.select_all()
                return True

    # ----------------------------------------------------------------------
    def __create_frame(self, widget):
        frame = Gtk.Frame()
        frame.set_shadow_type(Gtk.ShadowType.ETCHED_IN)
        frame.add(widget)
        frame.set_property("border-width", 4)
        return frame

    # ----------------------------------------------------------------------
    def __resize(self, data):
        width, height = self.get_size()
        System.properties.width = width
        System.properties.height = height
        System.properties.hpaned_work_area = self.hpaned_work_area.get_position(
        )
        System.properties.vpaned_bottom = self.vpaned_bottom.get_position()
        System.properties.vpaned_left = self.vpaned_left.get_position()
        self.work_area.resize(data)

    # ----------------------------------------------------------------------
    def update(self):
        self.main_control.update_all()

    # ----------------------------------------------------------------------
    def set_title(self, title):
        """
        This method set title.

            Parameters:
                * **title** (:class:`str<str>`)

        """
        Gtk.Window.set_title(self, "Mosaicode (" + title + ")")
示例#10
0
class TestMainControl(TestCase):
    def setUp(self):
        """Do the test basic setup."""
        win = MainWindow()
        self.main_control = MainControl(win)

    # ----------------------------------------------------------------------
    def test_new(self):
        self.main_control.new()

    # ----------------------------------------------------------------------
    def test_select_open(self):
        self.main_control.select_open()

    # ----------------------------------------------------------------------
    def test_open(self):
        self.main_control.open("app_data/examples/Add Border.mscd")

    # ----------------------------------------------------------------------
    def test_close(self):
        self.main_control.close()

    # ----------------------------------------------------------------------
    def test_save(self):
        self.main_control.save()

    # ----------------------------------------------------------------------
    def test_save_as(self):
        self.main_control.save_as()

    # ----------------------------------------------------------------------
    def test_rename_tab(self):
        self.main_control.rename_tab()

    # ----------------------------------------------------------------------
    def test_export_diagram(self):
        self.main_control.export_diagram()

    # ----------------------------------------------------------------------
    def test_exit(self):
        self.main_control.exit()

    # ----------------------------------------------------------------------
    def test_select_all(self):
        self.main_control.select_all()

    # ----------------------------------------------------------------------
    def test_cut(self):
        self.main_control.cut()

    # ----------------------------------------------------------------------
    def test_copy(self):
        self.main_control.copy()

    # ----------------------------------------------------------------------
    def test_paste(self):
        self.main_control.paste()

    # ----------------------------------------------------------------------
    def test_get_clipboard(self):
        self.main_control.get_clipboard()

    # ----------------------------------------------------------------------
    def test_reset_clipboard(self):
        self.main_control.reset_clipboard()

    # ----------------------------------------------------------------------
    def test_preferences(self):
        self.main_control.get_preferences()

    # ----------------------------------------------------------------------
    def test_delete(self):
        self.main_control.delete()

    # ----------------------------------------------------------------------
    def test_run(self):
        self.main_control.run()

    # ----------------------------------------------------------------------
    def test_save_source(self):
        self.main_control.save_source()

    # ----------------------------------------------------------------------
    def test_view_source(self):
        self.main_control.view_source()

    # ----------------------------------------------------------------------
    def test_about(self):
        self.main_control.about()

    # ----------------------------------------------------------------------
    def test_search(self):
        self.main_control.search()

    # ----------------------------------------------------------------------
    def test_set_block(self):
        self.main_control.set_block()

    # ----------------------------------------------------------------------
    def test_append_status_log(self):
        self.main_control.append_status_log("TEXT")

    # ----------------------------------------------------------------------
    def test_add_block(self):
        self.main_control.add_block("TESTE")

    # ----------------------------------------------------------------------
    def test_get_selected_block(self):
        self.main_control.get_selected_block()

    # ----------------------------------------------------------------------
    def test_zoom_in(self):
        self.main_control.zoom_in()

    # ----------------------------------------------------------------------
    def test_zoom_out(self):
        self.main_control.zoom_out()

    # ----------------------------------------------------------------------
    def test_zoom_normal(self):
        self.main_control.zoom_normal()

    # ----------------------------------------------------------------------
    def test_show_block_property(self):
        self.main_control.show_block_property()

    # ----------------------------------------------------------------------
    def test_clear_console(self):
        self.main_control.clear_console()

    # ----------------------------------------------------------------------
    def test_undo(self):
        self.main_control.undo()

    # ----------------------------------------------------------------------
    def test_redo(self):
        self.main_control.redo()

    # ----------------------------------------------------------------------
    def test_reload(self):
        self.main_control.reload()
示例#11
0
class TestMainControl(TestBase):
    def setUp(self):
        self.main_window = self.create_main_window()
        self.main_control = MainControl(self.main_window)
        self.main_control.init()
        self.diagram = self.create_full_diagram(main_window=self.main_window)
        self.main_window.work_area.add_diagram(self.diagram)
        self.diagram.set_modified(False)

    def test_init(self):
        System()
        System.add_plugin(Plugin())
        self.main_control.init()

    def test_select_open(self):
        t1 = threading.Thread(target=self.main_control.select_open,
                              args=(None, ))
        t1.start()
        sleep(1)
        if self.main_control.open_dialog:
            self.main_control.open_dialog.response(Gtk.ResponseType.CANCEL)
        t1.join()

        diagram = self.create_full_diagram(main_window=self.main_window)
        diagram.file_name = "/tmp/Test.mscd"
        DiagramControl(diagram).save()
        path = "/tmp/"
        System.set_user_dir(path)

        t1 = threading.Thread(target=self.main_control.select_open,
                              args=(path, ))
        t1.start()
        sleep(1)
        if self.main_control.open_dialog:
            self.main_control.open_dialog.set_filename("/tmp/Test.mscd")
            self.main_control.open_dialog.response(Gtk.ResponseType.OK)
        t1.join()
        os.remove("/tmp/Test.mscd")

    def test_open(self):
        t1 = threading.Thread(target=self.main_control.open, args=("Test", ))
        t1.start()
        sleep(1)
        if self.main_control.message_dialog:
            self.main_control.message_dialog.response(Gtk.ResponseType.CANCEL)
        self.refresh_gui()
        t1.join()

    def test_save(self):
        # diagram is null
        self.diagram.set_modified(False)
        self.main_window.work_area.close_tabs()
        t1 = threading.Thread(target=self.main_control.save, args=(None, ))
        t1.start()
        sleep(1)
        if self.main_control.save_dialog:
            self.main_control.save_dialog.response(Gtk.ResponseType.CANCEL)
        self.refresh_gui()
        t1.join()

        self.main_control.new()
        t1 = threading.Thread(target=self.main_control.save, args=(None, ))
        t1.start()
        sleep(1)
        if self.main_control.save_dialog:
            self.main_control.save_dialog.response(Gtk.ResponseType.OK)
        self.refresh_gui()
        t1.join()

        # Cancel button
        self.main_control.new()
        t1 = threading.Thread(target=self.main_control.save, args=(None, ))
        t1.start()
        sleep(1)
        if self.main_control.save_dialog:
            self.main_control.save_dialog.response(Gtk.ResponseType.CANCEL)
        self.refresh_gui()
        t1.join()

    def test_save_as(self):
        t1 = threading.Thread(target=self.main_control.save_as, args=())
        t1.start()
        sleep(1)
        if self.main_control.save_dialog:
            self.main_control.save_dialog.response(Gtk.ResponseType.CANCEL)
        self.refresh_gui()
        t1.join()

    def test_exit(self):
        self.main_control.exit()

        self.main_window = self.create_main_window()
        self.main_control = MainControl(self.main_window)
        self.main_control.init()
        self.main_control.new()

        diagram = self.main_window.work_area.get_current_diagram()
        diagram.set_modified(True)

        t1 = threading.Thread(target=self.main_control.exit, args=())
        t1.start()
        sleep(1)
        if self.main_window.work_area.confirm:
            self.main_window.work_area.confirm.response(
                Gtk.ResponseType.CANCEL)
        self.refresh_gui()
        t1.join()

    def test_add_recent_files(self):
        self.main_control.add_recent_files("Test")
        self.main_control.add_recent_files("Test")
        for i in range(0, 20):
            System.get_preferences().recent_files.append("Some File")
        self.main_control.add_recent_files("Test")

    def test_clipboard(self):
        self.main_control.get_clipboard()
        self.main_control.reset_clipboard()

    def test_preferences(self):
        t1 = threading.Thread(target=self.main_control.preferences, args=())
        t1.start()
        sleep(1)
        if self.main_control.preference_window:
            self.main_control.preference_window.close()
        self.refresh_gui()
        t1.join()

    def test_save_source(self):
        self.main_control.save_source()

        self.diagram.set_modified(False)
        self.main_window.work_area.close_tabs()
        t1 = threading.Thread(target=self.main_control.save_source, args=())
        t1.start()
        sleep(1)
        if self.main_control.message_dialog:
            self.main_control.message_dialog.close()
        t1.join()

    def test_view_source(self):
        t1 = threading.Thread(target=self.main_control.view_source, args=())
        t1.start()
        sleep(2)
        if self.main_control.code_window:
            self.main_control.code_window.close()
        self.refresh_gui()
        t1.join()

        self.diagram.set_modified(False)
        self.main_window.work_area.close_tabs()
        t1 = threading.Thread(target=self.main_control.view_source, args=())
        t1.start()
        sleep(1)
        if self.main_control.message_dialog:
            self.main_control.message_dialog.response(Gtk.ResponseType.CANCEL)
        self.refresh_gui()
        t1.join()

    def test_run_stop(self):
        self.main_control.run()
        sleep(1)
        self.diagram.set_modified(False)
        self.main_window.work_area.close_tabs()
        self.main_control.run()
        self.main_control.stop(None, None)
        self.main_control.update_blocks()
        self.main_control.close()
        self.main_control.new()

    def test_publish(self):
        self.main_control.publish()
        # Twice to start / stop
        self.main_control.publish()

    def test_about(self):
        t1 = threading.Thread(target=self.main_control.about, args=())
        t1.start()
        sleep(1)
        if self.main_control.about_window:
            self.main_control.about_window.close()
        self.refresh_gui()
        t1.join()

    def test_search_clear(self):
        self.main_control.search("Test")
        self.main_control.set_block(self.create_block())
        self.main_control.get_selected_block()
        self.main_control.clear_console()
        self.main_control.show_grid(None)
        self.main_window.menu.show_grid.emit("activate")

    def test_add_block(self):
        self.main_control.add_block(self.create_block())

        self.diagram.set_modified(False)
        self.main_window.work_area.close_tabs()

        t1 = threading.Thread(target=self.main_control.add_block,
                              args=(self.create_block(), ))
        t1.start()
        sleep(1)
        if self.main_control.message_dialog:
            self.main_control.message_dialog.response(Gtk.ResponseType.CANCEL)
        self.refresh_gui()
        t1.join()

    def test_edit(self):
        self.main_control.add_comment()
        self.main_control.select_all()
        self.main_control.cut()
        self.main_control.copy()
        self.main_control.paste()
        self.main_control.delete()

        self.diagram.set_modified(False)
        self.main_window.work_area.close_tabs()
        self.main_control.add_comment()
        self.main_control.select_all()
        self.main_control.cut()
        self.main_control.copy()
        self.main_control.paste()
        self.main_control.delete()

    def test_properties(self):
        self.main_control.zoom_in()
        self.main_control.zoom_out()
        self.main_control.zoom_normal()
        self.main_control.align_bottom()
        self.main_control.align_top()
        self.main_control.align_left()
        self.main_control.align_right()
        self.main_control.collapse_all()
        self.main_control.uncollapse_all()

        self.diagram.set_modified(False)
        self.main_window.work_area.close_tabs()
        self.main_control.zoom_in()
        self.main_control.zoom_out()
        self.main_control.zoom_normal()
        self.main_control.align_bottom()
        self.main_control.align_top()
        self.main_control.align_left()
        self.main_control.align_right()
        self.main_control.collapse_all()
        self.main_control.uncollapse_all()

    def test_undo_redo(self):
        self.main_control.undo()
        self.main_control.redo()

        self.diagram.set_modified(False)
        self.main_window.work_area.close_tabs()
        self.main_control.undo()
        self.main_control.redo()

    def test_redraw_update(self):
        self.main_control.redraw(True)
        self.main_control.redraw(False)
        self.main_control.update_all()

    def test_add_delete_code_template(self):
        self.main_control.add_code_template(self.create_code_template())

        t1 = threading.Thread(target=self.main_control.delete_code_template,
                              args=(self.create_code_template(), ))
        t1.start()
        sleep(1)
        if self.main_control.message_dialog:
            self.main_control.message_dialog.response(Gtk.ResponseType.CANCEL)
        self.refresh_gui()
        t1.join()

        code_template = self.create_code_template()
        System.add_code_template(code_template)
        t1 = threading.Thread(target=self.main_control.delete_code_template,
                              args=(code_template, ))
        t1.start()
        sleep(1)
        if self.main_control.message_dialog:
            self.main_control.message_dialog.response(Gtk.ResponseType.CANCEL)
        self.refresh_gui()
        t1.join()

    def test_add__delete_port(self):
        self.main_control.add_port(self.create_port())

        t1 = threading.Thread(target=self.main_control.delete_port,
                              args=("port", ))
        t1.start()
        sleep(1)
        if self.main_control.message_dialog:
            self.main_control.message_dialog.response(Gtk.ResponseType.CANCEL)
        self.refresh_gui()
        t1.join()

    def test_add_delete_block(self):
        self.main_control.add_new_block(self.create_block())

        t1 = threading.Thread(target=self.main_control.delete_block,
                              args=(self.create_block(), ))
        t1.start()
        sleep(1)
        if self.main_control.message_dialog:
            self.main_control.message_dialog.response(Gtk.ResponseType.CANCEL)
        self.refresh_gui()
        t1.join()