diff --git a/tests/data/protocol.proto b/tests/data/protocol.proto index 89a77b81..27e9ee70 100644 --- a/tests/data/protocol.proto +++ b/tests/data/protocol.proto @@ -12,29 +12,27 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - diff --git a/tests/test_protocol_label_dialog.py b/tests/test_protocol_label_dialog.py new file mode 100644 index 00000000..56f35fc7 --- /dev/null +++ b/tests/test_protocol_label_dialog.py @@ -0,0 +1,64 @@ +import os +import random +import unittest + +from PyQt5.QtCore import QDir +from PyQt5.QtCore import Qt +from PyQt5.QtTest import QTest + +import tests.utils_testing +from urh.controller.ProjectDialogController import ProjectDialogController +from urh.controller.MainController import MainController +from urh.controller.ProtocolLabelController import ProtocolLabelController +from urh.signalprocessing.Modulator import Modulator +from tests.utils_testing import get_path_for_data_file +app = tests.utils_testing.app + + +class TestProtocolLabelDialog(unittest.TestCase): + def setUp(self): + self.form = MainController() + self.form.add_protocol_file(get_path_for_data_file("protocol.proto")) + self.cframe = self.form.compare_frame_controller + + self.cframe.add_protocol_label(9, 20, 0, 0, edit_label_name=False) + self.cframe.add_protocol_label(39, 54, 1, 0, edit_label_name=False) + + self.assertEqual(len(self.cframe.proto_analyzer.protocol_labels), 2) + self.dialog = ProtocolLabelController(preselected_index=1, + message_type=self.cframe.proto_analyzer.messages[0].message_type, + viewtype=0, max_end=200, parent=self.cframe) + + def test_protocol_label_dialog(self): + self.assertIn(self.cframe.proto_analyzer.default_message_type.name, self.dialog.windowTitle()) + table_model = self.dialog.ui.tblViewProtoLabels.model() + + self.assertEqual(table_model.rowCount(), 2) + label = table_model.message_type[0] + table_model.setData(table_model.index(0, 0), "testname") + self.assertEqual(label.name, "testname") + table_model.setData(table_model.index(0, 1), 15) + self.assertEqual(label.start, 15 - 1) + table_model.setData(table_model.index(0, 2), 30) + self.assertEqual(label.end, 30) + table_model.setData(table_model.index(0, 3), 4) + self.assertEqual(label.color_index, 4) + table_model.setData(table_model.index(0, 4), False) + self.assertEqual(label.apply_decoding, False) + + def test_change_view_type(self): + + table_model = self.dialog.ui.tblViewProtoLabels.model() + self.dialog.ui.cbProtoView.setCurrentIndex(1) + self.assertEqual(table_model.data(table_model.index(0, 1)), 3) + self.assertEqual(table_model.data(table_model.index(0, 2)), 5) + + self.assertEqual(table_model.data(table_model.index(1, 1)), 10) + self.assertEqual(table_model.data(table_model.index(1, 2)), 13) + + label = table_model.message_type[0] + table_model.setData(table_model.index(0, 1), 2) + table_model.setData(table_model.index(0, 2), 5) + + self.assertEqual(label.start, 8 - 1) + self.assertEqual(label.end, 20)