[epiphany] ephy-session-test: test recovering a multiple-window session
- From: Xan Lopez <xan src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany] ephy-session-test: test recovering a multiple-window session
- Date: Fri, 15 Jun 2012 07:12:52 +0000 (UTC)
commit 6594295a337008aed3495adf7dade4c2d54c783e
Author: Xan Lopez <xan igalia com>
Date: Fri Jun 15 09:09:17 2012 +0200
ephy-session-test: test recovering a multiple-window session
tests/ephy-session-test.c | 51 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 50 insertions(+), 1 deletions(-)
---
diff --git a/tests/ephy-session-test.c b/tests/ephy-session-test.c
index 70d2e4b..06b8d62 100644
--- a/tests/ephy-session-test.c
+++ b/tests/ephy-session-test.c
@@ -65,6 +65,51 @@ test_ephy_session_load ()
view = ephy_embed_get_web_view (embed);
g_assert (view);
g_assert_cmpstr (ephy_web_view_get_address (view), ==, "ephy-about:memory");
+
+ /* FIXME: Destroy the window. I think ideally we'd like something
+ * like 'ephy_session_clear ()' to reset everything to its initial
+ * state here. That or allow EphyShell to be created more than
+ * once and do it once per test. */
+ gtk_widget_destroy (GTK_WIDGET (l->data));
+}
+
+const char *session_data_many_windows =
+"<?xml version=\"1.0\"?>"
+"<session>"
+ "<window x=\"100\" y=\"26\" width=\"1067\" height=\"740\" active-tab=\"0\" role=\"epiphany-window-7da420dd\">"
+ "<embed url=\"about:epiphany\" title=\"Epiphany\"/>"
+ "</window>"
+ "<window x=\"73\" y=\"26\" width=\"1067\" height=\"740\" active-tab=\"0\" role=\"epiphany-window-1261c786\">"
+ "<embed url=\"about:epiphany\" title=\"Epiphany\"/>"
+ "</window>"
+"</session>";
+
+static void
+test_ephy_session_load_many_windows ()
+{
+ EphySession *session;
+ gboolean ret;
+ GList *l, *p;
+ EphyEmbed *embed;
+ EphyWebView *view;
+
+ session = EPHY_SESSION (ephy_shell_get_session (ephy_shell));
+ g_assert (session);
+
+ ret = ephy_session_load_from_string (session, session_data_many_windows, -1, 0);
+ g_assert (ret);
+
+ l = ephy_session_get_windows (session);
+ g_assert (l);
+ g_assert_cmpint (g_list_length (l), ==, 2);
+
+ for (p = l; p; p = p->next) {
+ embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (p->data));
+ g_assert (embed);
+ view = ephy_embed_get_web_view (embed);
+ g_assert (view);
+ g_assert_cmpstr (ephy_web_view_get_address (view), ==, "ephy-about:epiphany");
+ }
}
int
@@ -85,14 +130,18 @@ main (int argc, char *argv[])
}
_ephy_shell_create_instance (EPHY_EMBED_SHELL_MODE_TEST);
+ g_assert (ephy_shell);
g_test_add_func ("/src/ephy-session/load",
test_ephy_session_load);
+ g_test_add_func ("/src/ephy-session/load-many-windows",
+ test_ephy_session_load_many_windows);
+
ret = g_test_run ();
- g_object_unref (ephy_shell);
ephy_file_helpers_shutdown ();
+ g_object_unref (ephy_shell);
return ret;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]