Skip to content

Commit

Permalink
Before each test change to appropriate remember-tabs gsettings
Browse files Browse the repository at this point in the history
  • Loading branch information
ldrahnik committed Nov 4, 2023
1 parent e580218 commit 21f9633
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 14 deletions.
2 changes: 0 additions & 2 deletions src/Application.vala
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ public class Terminal.Application : Gtk.Application {
public static GLib.Settings settings;
public static GLib.Settings settings_sys;

public bool is_testing { get; set construct; }

private static Themes themes;

public Application () {
Expand Down
5 changes: 0 additions & 5 deletions src/MainWindow.vala
Original file line number Diff line number Diff line change
Expand Up @@ -1357,11 +1357,6 @@ namespace Terminal {
string[] opened_tabs = {};
int focused_tab = 0;

// Continuous saving of opened terminals interferes with current unit tests
if (app.is_testing) {
return;
}

if (save_zooms && current_terminal != null) {
Application.saved_state.set_double ("zoom", current_terminal.font_scale);
}
Expand Down
54 changes: 47 additions & 7 deletions src/tests/Application.vala
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,26 @@ namespace Terminal.Test.Application {
delegate void CommandLineCallback (ApplicationCommandLine command_line);
delegate void ActivateCallback ();

private void setup () {
private GLib.Settings getSettingsWithNoContinuousSaving() {
GLib.Settings settings = new GLib.Settings ("io.elementary.terminal.settings");
settings.set_boolean ("remember-tabs", false);
return settings;
}

private GLib.Settings getSettingsWithContinousSaving() {
GLib.Settings settings = new GLib.Settings ("io.elementary.terminal.settings");
settings.set_boolean ("remember-tabs", true);
return settings;
}

private void setup (GLib.Settings ?settings = null) {

if (settings == null) {
Application.getSettingsWithNoContinuousSaving ();
}

application = new Terminal.Application () {
application_id = "io.elementary.terminal.tests.application",
is_testing = true
application_id = "io.elementary.terminal.tests.application"
};

application.shutdown.connect (() => application.get_windows ().foreach ((win) => win.destroy ()));
Expand Down Expand Up @@ -48,9 +64,10 @@ namespace Terminal.Test.Application {
}
}

private void option (string options, string platform_data, CommandLineCallback callback) {
private void option (string options, string platform_data, CommandLineCallback callback, GLib.Settings ?settings = null) {
ulong oneshot = 0;
setup ();

setup (settings);

oneshot = application.command_line.connect ((nil) => {
application.disconnect (oneshot);
Expand All @@ -74,9 +91,10 @@ namespace Terminal.Test.Application {
}
}

private void action (string name, Variant? @value, ActivateCallback callback) {
private void action (string name, Variant? @value, ActivateCallback callback, GLib.Settings ?settings = null) {
ulong oneshot = 0;
setup ();

setup (settings);

oneshot = application.command_line.connect ((nill) => {
application.disconnect (oneshot);
Expand Down Expand Up @@ -155,6 +173,28 @@ namespace Terminal.Test.Application {
var n_tabs = (int) window.terminals.length ();
assert_cmpint (n_tabs, CompareOperator.EQ, 1);
});

// continous saving below
option ("{'new-tab':<true>}", "@a{sv} {}", () => {
unowned var window = (MainWindow) application.active_window;
assert_nonnull (window);
var n_tabs = (int) window.terminals.length ();
assert_cmpint (n_tabs, CompareOperator.EQ, 2);
}, getSettingsWithContinousSaving());

option ("{'new-tab':<false>}", "@a{sv} {}", () => {
unowned var window = (MainWindow) application.active_window;
assert_nonnull (window);
var n_tabs = (int) window.terminals.length ();
assert_cmpint (n_tabs, CompareOperator.EQ, 2);
}, getSettingsWithContinousSaving());

option ("{'new-tab':<true>}", "@a{sv} {}", () => {
unowned var window = (MainWindow) application.active_window;
assert_nonnull (window);
var n_tabs = (int) window.terminals.length ();
assert_cmpint (n_tabs, CompareOperator.EQ, 3);
}, getSettingsWithContinousSaving());
});

GLib.Test.add_func ("/application/command-line/new-window", () => {
Expand Down

0 comments on commit 21f9633

Please sign in to comment.