[geary/wip/728002-webkit2] Make ClientWebView-based tests execute a bit faster.
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary/wip/728002-webkit2] Make ClientWebView-based tests execute a bit faster.
- Date: Mon, 30 Jan 2017 13:47:48 +0000 (UTC)
commit cbff4e3e9bd9d75ee74386820559f4e65e84a8dc
Author: Michael James Gratton <mike vee net>
Date: Mon Jan 30 23:09:02 2017 +1100
Make ClientWebView-based tests execute a bit faster.
* test/client/components/client-web-view-test.vala: New explicit tests
for init'ing the WebContext and loading default resources.
* test/client/components/client-web-view-test-case.vala:
Init the WebContext and load resources in the constructor rather than
fixture setup, so it only happens once per suite, not once per
test. Update subclasses to do same.
* test/client/composer/composer-web-view-test.vala: Add an explicit test
for loading ComposerWebView resources.
test/CMakeLists.txt | 1 +
.../components/client-web-view-test-case.vala | 6 ++--
test/client/components/client-web-view-test.vala | 34 ++++++++++++++++++++
test/client/composer/composer-web-view-test.vala | 14 +++++---
test/js/composer-page-state-test.vala | 11 +++---
test/js/conversation-page-state-test.vala | 11 +++---
test/main.vala | 4 ++
7 files changed, 63 insertions(+), 18 deletions(-)
---
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index db10c53..3980e58 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -15,6 +15,7 @@ set(TEST_SRC
engine/util-timeout-manager-test.vala
client/application/geary-configuration-test.vala
+ client/components/client-web-view-test.vala
client/components/client-web-view-test-case.vala
client/composer/composer-web-view-test.vala
diff --git a/test/client/components/client-web-view-test-case.vala
b/test/client/components/client-web-view-test-case.vala
index da44e4f..68b2b1c 100644
--- a/test/client/components/client-web-view-test-case.vala
+++ b/test/client/components/client-web-view-test-case.vala
@@ -15,9 +15,6 @@ public abstract class ClientWebViewTestCase<V> : Gee.TestCase {
public ClientWebViewTestCase(string name) {
base(name);
- }
-
- public override void set_up() {
this.config = new Configuration(GearyApplication.APP_ID);
ClientWebView.init_web_context(
this.config,
@@ -30,6 +27,9 @@ public abstract class ClientWebViewTestCase<V> : Gee.TestCase {
} catch (Error err) {
assert_not_reached();
}
+ }
+
+ public override void set_up() {
this.test_view = set_up_test_view();
}
diff --git a/test/client/components/client-web-view-test.vala
b/test/client/components/client-web-view-test.vala
new file mode 100644
index 0000000..f222508
--- /dev/null
+++ b/test/client/components/client-web-view-test.vala
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2016 Michael Gratton <mike vee net>
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+public class ClientWebViewTest : Gee.TestCase {
+
+ public ClientWebViewTest() {
+ base("ClientWebViewTest");
+ add_test("init_web_context", init_web_context);
+ add_test("load_resources", load_resources);
+ }
+
+ public void init_web_context() {
+ Configuration config = new Configuration(GearyApplication.APP_ID);
+ ClientWebView.init_web_context(
+ config,
+ File.new_for_path(_BUILD_ROOT_DIR).get_child("src"),
+ File.new_for_path("/tmp"), // XXX use something better here
+ true
+ );
+ }
+
+ public void load_resources() {
+ try {
+ ClientWebView.load_scripts();
+ } catch (Error err) {
+ assert_not_reached();
+ }
+ }
+
+}
diff --git a/test/client/composer/composer-web-view-test.vala
b/test/client/composer/composer-web-view-test.vala
index 7b887bc..6fe7e79 100644
--- a/test/client/composer/composer-web-view-test.vala
+++ b/test/client/composer/composer-web-view-test.vala
@@ -9,6 +9,7 @@ public class ComposerWebViewTest : ClientWebViewTestCase<ComposerWebView> {
public ComposerWebViewTest() {
base("ComposerWebViewTest");
+ add_test("load_resources", load_resources);
add_test("edit_context", edit_context);
add_test("get_html", get_html);
add_test("get_text", get_text);
@@ -19,6 +20,14 @@ public class ComposerWebViewTest : ClientWebViewTestCase<ComposerWebView> {
add_test("get_text_with_nbsp", get_text_with_nbsp);
}
+ public void load_resources() {
+ try {
+ ComposerWebView.load_resources();
+ } catch (Error err) {
+ assert_not_reached();
+ }
+ }
+
public void edit_context() {
assert(!(new ComposerWebView.EditContext("0,,,").is_link));
assert(new ComposerWebView.EditContext("1,,,").is_link);
@@ -160,11 +169,6 @@ long, long, long, long, long, long, long, long, long, long,
}
protected override ComposerWebView set_up_test_view() {
- try {
- ComposerWebView.load_resources();
- } catch (Error err) {
- assert_not_reached();
- }
return new ComposerWebView(this.config);
}
diff --git a/test/js/composer-page-state-test.vala b/test/js/composer-page-state-test.vala
index debb739..9e34591 100644
--- a/test/js/composer-page-state-test.vala
+++ b/test/js/composer-page-state-test.vala
@@ -23,6 +23,12 @@ class ComposerPageStateTest : ClientWebViewTestCase<ComposerWebView> {
add_test("quote_lines", quote_lines);
add_test("resolve_nesting", resolve_nesting);
add_test("replace_non_breaking_space", replace_non_breaking_space);
+
+ try {
+ ComposerWebView.load_resources();
+ } catch (Error err) {
+ assert_not_reached();
+ }
}
public void edit_context_link() {
@@ -334,11 +340,6 @@ unknown://example6.com
}
protected override ComposerWebView set_up_test_view() {
- try {
- ComposerWebView.load_resources();
- } catch (Error err) {
- assert_not_reached();
- }
return new ComposerWebView(this.config);
}
diff --git a/test/js/conversation-page-state-test.vala b/test/js/conversation-page-state-test.vala
index 48a1016..a847163 100644
--- a/test/js/conversation-page-state-test.vala
+++ b/test/js/conversation-page-state-test.vala
@@ -17,6 +17,12 @@ class ConversationPageStateTest : ClientWebViewTestCase<ConversationWebView> {
add_test("is_deceptive_text_deceptive_href", is_deceptive_text_deceptive_href);
add_test("is_deceptive_text_non_matching_subdomain", is_deceptive_text_non_matching_subdomain);
add_test("is_deceptive_text_different_domain", is_deceptive_text_different_domain);
+
+ try {
+ ConversationWebView.load_resources(File.new_for_path(""));
+ } catch (Error err) {
+ assert_not_reached();
+ }
}
public void is_deceptive_text_not_url() {
@@ -68,11 +74,6 @@ class ConversationPageStateTest : ClientWebViewTestCase<ConversationWebView> {
}
protected override ConversationWebView set_up_test_view() {
- try {
- ConversationWebView.load_resources(File.new_for_path(""));
- } catch (Error err) {
- assert_not_reached();
- }
return new ConversationWebView(this.config);
}
diff --git a/test/main.vala b/test/main.vala
index d141516..4cd1256 100644
--- a/test/main.vala
+++ b/test/main.vala
@@ -47,6 +47,10 @@ int main(string[] args) {
TestSuite client = new TestSuite("client");
+ // Keep this before other ClientWebView based tests since it tests
+ // WebContext init
+ client.add_suite(new ClientWebViewTest().get_suite());
+
client.add_suite(new ComposerWebViewTest().get_suite());
client.add_suite(new ConfigurationTest().get_suite());
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]