feat: add chrome path picker
This commit is contained in:
+53
-1
@@ -733,9 +733,61 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertFalse(hidden_widget.isEnabled())
|
||||
self.assertEqual(-1, tab.infrastructure_form_layout.indexOf(hidden_widget))
|
||||
self.assertGreaterEqual(
|
||||
tab.infrastructure_form_layout.indexOf(tab.chrome_path_edit),
|
||||
tab.infrastructure_form_layout.indexOf(tab.chrome_path_widget),
|
||||
0,
|
||||
)
|
||||
self.assertEqual("选择...", tab.chrome_path_browse_button.text())
|
||||
self.assertEqual("chromePathBrowseButton", tab.chrome_path_browse_button.objectName())
|
||||
self.assertIs(
|
||||
tab.chrome_path_widget.layout().itemAt(0).widget(),
|
||||
tab.chrome_path_edit,
|
||||
)
|
||||
self.assertIs(
|
||||
tab.chrome_path_widget.layout().itemAt(1).widget(),
|
||||
tab.chrome_path_browse_button,
|
||||
)
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_settings_tab_browses_chrome_path(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
statuses = []
|
||||
tab = SettingsTab(config=cfg, status_callback=statuses.append)
|
||||
self.addCleanup(tab.close)
|
||||
selected_path = os.path.join(temp_dir, "Chrome", "chrome.exe")
|
||||
os.makedirs(os.path.dirname(selected_path), exist_ok=True)
|
||||
|
||||
self.assertFalse(tab.is_dirty())
|
||||
with mock.patch(
|
||||
"app.gui.tabs.settings.QFileDialog.getOpenFileName",
|
||||
return_value=(selected_path, "Chrome 程序 (chrome.exe)"),
|
||||
) as browse:
|
||||
tab.chrome_path_browse_button.click()
|
||||
|
||||
browse.assert_called_once()
|
||||
self.assertEqual("选择 Chrome 程序", browse.call_args[0][1])
|
||||
self.assertEqual(selected_path, tab.chrome_path_edit.text())
|
||||
self.assertTrue(tab.is_dirty())
|
||||
self.assertFalse(tab.unsaved_changes_label.isHidden())
|
||||
|
||||
with mock.patch("app.gui.QMessageBox.information") as info:
|
||||
self.assertTrue(tab.save_app_settings())
|
||||
info.assert_called_once_with(tab, "保存设置", "设置已保存")
|
||||
saved = appconfig.load_config(cfg["config_path"])
|
||||
self.assertEqual(selected_path, saved["chrome_path"])
|
||||
self.assertFalse(tab.is_dirty())
|
||||
|
||||
tab._set_dirty(False)
|
||||
previous_path = tab.chrome_path_edit.text()
|
||||
with mock.patch(
|
||||
"app.gui.tabs.settings.QFileDialog.getOpenFileName",
|
||||
return_value=("", ""),
|
||||
):
|
||||
tab.chrome_path_browse_button.click()
|
||||
|
||||
self.assertEqual(previous_path, tab.chrome_path_edit.text())
|
||||
self.assertFalse(tab.is_dirty())
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user