~midori/midori/trunk

« back to all changes in this revision

Viewing changes to tests/app.vala

  • Committer: Christian Dywan
  • Date: 2014-01-11 20:48:51 UTC
  • mto: This revision was merged to the branch mainline in revision 6532.
  • Revision ID: christian.dywan@canonical.com-20140111204851-sj2kfjubwyx2fk91
Tighten app test case and remove extension case

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
void app_normal () {
20
20
    Midori.Test.grab_max_timeout ();
21
 
 
22
21
    Midori.Test.idle_timeouts ();
23
22
    Midori.Test.log_set_fatal_handler_for_icons ();
24
23
    Midori.Paths.Test.reset_runtime_mode ();
25
24
    Midori.App.set_instance_is_running (false);
26
25
    var app = Midori.normal_app_new (null, "test-normal", false, null, null, -1, null);
27
26
    var loop = MainContext.default ();
28
 
    do { loop.iteration (true); } while (loop.pending ());
29
 
    for (var i = 0 ; i < 7; i++) {
 
27
    do { loop.iteration (true); } while (app.browser == null);
 
28
    for (var i = 0 ; i < 3; i++) {
30
29
        var tab = app.browser.add_uri ("about:blank") as Midori.View;
31
30
        app.browser.close_tab (tab);
32
31
        do { loop.iteration (true); } while (loop.pending ());
33
32
    }
34
33
    Midori.normal_app_on_quit (app);
35
 
    /* FIXME
36
 
    for (var i = 0 ; i < 7; i++) {
37
 
        app.settings.maximum_cache_size++;
38
 
        do { loop.iteration (true); } while (loop.pending ());
39
 
    }
40
 
    */
41
 
 
42
34
    Midori.Test.release_max_timeout ();
43
35
}
44
36
 
45
37
void app_normal_custom_config () {
 
38
    Midori.Test.grab_max_timeout ();
 
39
    Midori.Test.idle_timeouts ();
46
40
    Midori.Test.log_set_fatal_handler_for_icons ();
47
41
    Midori.Paths.Test.reset_runtime_mode ();
48
42
    Midori.App.set_instance_is_running (false);
49
 
    var app = Midori.normal_app_new (Midori.Paths.make_tmp_dir ("custom-configXXXXXX"),
 
43
    string? config_dir = null;
 
44
    try {
 
45
        config_dir = DirUtils.make_tmp ("custom-configXXXXXX");
 
46
    } catch (Error error) {
 
47
        GLib.error (error.message);
 
48
    }
 
49
    var app = Midori.normal_app_new (config_dir,
50
50
        "test-custom-config-normal", false, null, null, -1, null);
51
 
    var loop = MainContext.default ();
52
 
    do { loop.iteration (true); } while (app.browser == null);
53
 
    assert (check_sensible_window_size (app.browser, app.settings));
54
51
    Midori.normal_app_on_quit (app);
 
52
    Midori.Test.release_max_timeout ();
55
53
}
56
54
 
57
55
void app_private () {
82
80
    assert (check_sensible_window_size (browser, browser.settings));
83
81
}
84
82
 
85
 
 
86
 
void app_extensions_load () {
87
 
    Midori.Test.grab_max_timeout ();
88
 
 
89
 
    Midori.Test.idle_timeouts ();
90
 
    Midori.Test.log_set_fatal_handler_for_icons ();
91
 
    Midori.Paths.Test.reset_runtime_mode ();
92
 
    Midori.App.set_instance_is_running (false);
93
 
    var app = Midori.normal_app_new (null, "test-extensions-normal", false, null, null, -1, null);
94
 
    var loop = MainContext.default ();
95
 
    do { loop.iteration (true); } while (loop.pending ());
96
 
    /* No extensions loaded */
97
 
    assert (app.extensions.get_length () == 0);
98
 
    Midori.Extension.load_from_folder (app, null, false);
99
 
    /* All extensions loaded, inactive */
100
 
    assert (app.extensions.get_length () > 0);
101
 
 
102
 
    /* Number of expected extensions matches */
103
 
    /* FIXME Counting .so/dll doesn't see multiple extensions in one binary
104
 
    Dir dir;
105
 
    try {
106
 
        dir = Dir.open (Midori.Paths.get_lib_path (PACKAGE_NAME), 0);
107
 
    }
108
 
    catch (Error error) {
109
 
        GLib.error (error.message);
110
 
    }
111
 
    uint count = 0;
112
 
    string? name;
113
 
    while ((name = dir.read_name ()) != null) {
114
 
        if (name.has_suffix (GLib.Module.SUFFIX))
115
 
            count++;
116
 
    }
117
 
    assert (app.extensions.get_length () == count); */
118
 
 
119
 
    foreach (var item in app.extensions.get_items ())
120
 
        assert (!(item as Midori.Extension).is_active ());
121
 
 
122
 
    for (var i = 0 ; i < 7; i++) {
123
 
        var tab = app.browser.add_uri ("about:blank") as Midori.View;
124
 
        app.browser.close_tab (tab);
125
 
    }
126
 
    do { loop.iteration (true); } while (loop.pending ());
127
 
 
128
 
    /*
129
 
    Midori.Test.release_max_timeout ();
130
 
}
131
 
 
132
 
void app_extensions_activate () {
133
 
    Midori.Test.grab_max_timeout ();
134
 
 
135
 
    Midori.Test.idle_timeouts ();
136
 
    Midori.Test.log_set_fatal_handler_for_icons ();
137
 
    Midori.Paths.Test.reset_runtime_mode ();
138
 
    Midori.App.set_instance_is_running (false);
139
 
    var app = Midori.normal_app_new (null, "test-extensions-normal", false, null, null, -1, null);
140
 
    var loop = MainContext.default ();
141
 
    do { loop.iteration (true); } while (loop.pending ());
142
 
    Midori.Extension.load_from_folder (app, null, false);
143
 
 
144
 
    assert (app.extensions.get_length () > 0);
145
 
    */
146
 
 
147
 
    foreach (var item in app.extensions.get_items ()) {
148
 
        stdout.printf ("- %s\n", (item as Midori.Extension).name);
149
 
        (item as Midori.Extension).activate (app);
150
 
    }
151
 
    do { loop.iteration (true); } while (loop.pending ());
152
 
 
153
 
    for (var i = 0 ; i < 7; i++) {
154
 
        var tab = app.browser.add_uri ("about:blank") as Midori.View;
155
 
        app.browser.close_tab (tab);
156
 
    }
157
 
    do { loop.iteration (true); } while (loop.pending ());
158
 
 
159
 
    foreach (var item in app.extensions.get_items ())
160
 
        (item as Midori.Extension).deactivate ();
161
 
    do { loop.iteration (true); } while (loop.pending ());
162
 
 
163
 
    for (var i = 0 ; i < 7; i++) {
164
 
        var tab = app.browser.add_uri ("about:blank") as Midori.View;
165
 
        app.browser.close_tab (tab);
166
 
        do { loop.iteration (true); } while (loop.pending ());
167
 
    }
168
 
 
169
 
    Midori.Test.release_max_timeout ();
170
 
}
171
 
 
172
 
 
173
83
void main (string[] args) {
174
84
    Test.init (ref args);
175
85
    Midori.App.setup (ref args, null);
178
88
    Test.add_func ("/app/private", app_private);
179
89
    Test.add_func ("/app/web", app_web);
180
90
    Test.add_func ("/app/web-custom-config", app_web_custom_config);
181
 
    Test.add_func ("/app/extensions-load", app_extensions_load);
182
 
    /* Test.add_func ("/app/extensions-activate", app_extensions_activate); */
183
91
    Test.run ();
184
92
}
185
93