~osomon/oxide/i18n

« back to all changes in this revision

Viewing changes to qt/tests/qmltests/api/tst_WebContext_sessionCookies.qml

  • Committer: Olivier Tilloy
  • Date: 2014-04-08 10:03:11 UTC
  • mfrom: (312.2.173 oxide)
  • Revision ID: olivier.tilloy@canonical.com-20140408100311-b3zb7q1jfrevbrf1
Merge the latest changes from trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import QtQuick 2.0
 
2
import QtTest 1.0
 
3
import com.canonical.Oxide 1.0
 
4
import com.canonical.Oxide.Testing 1.0
 
5
 
 
6
TestCase {
 
7
  id: test
 
8
  name: "WebContext_sessionCookies"
 
9
 
 
10
  function _createWebView(sessionCookieMode) {
 
11
    var webContext = webContextComponent.createObject(this, {
 
12
      "sessionCookieMode": sessionCookieMode
 
13
    });
 
14
    var webView = webViewComponent.createObject(this, {
 
15
      "context": webContext
 
16
    });
 
17
    return webView;
 
18
  }
 
19
 
 
20
  function _deleteWebView(webView) {
 
21
    var context = webView.context;
 
22
    OxideTestingUtils.destroyQObjectNow(webView);
 
23
    OxideTestingUtils.destroyQObjectNow(context);
 
24
  }
 
25
 
 
26
  function _clear(webView) {
 
27
    var restore = webView.context.cookiePolicy;
 
28
    webView.context.cookiePolicy = WebContext.CookiePolicyAllowAll;
 
29
 
 
30
    webView.url = "http://localhost:8080/clear-test-cookies-hack.py"
 
31
    verify(webView.waitForLoadSucceeded(),
 
32
           "Timed out waiting for successful load");
 
33
 
 
34
    webView.context.cookiePolicy = restore;
 
35
  }
 
36
 
 
37
  function _set_cookies(webView) {
 
38
    webView.url = "http://localhost:8080/tst_WebContext_sessionCookies.py";
 
39
    verify(webView.waitForLoadSucceeded(),
 
40
           "Timed out waiting for successful load");
 
41
  }
 
42
 
 
43
  function _test_can_get_session_cookies(webView) {
 
44
    webView.url = "http://localhost:8080/get-cookies.py";
 
45
    verify(webView.waitForLoadSucceeded(),
 
46
           "Timed out waiting for successful load");
 
47
 
 
48
    var cookies = JSON.parse(webView.getTestApi().evaluateCode(
 
49
        "return document.body.children[0].innerHTML", true));
 
50
 
 
51
    return "sessionfoo" in cookies && cookies["sessionfoo"] == "sessionbar";
 
52
  }
 
53
 
 
54
  function test_WebContext_sessionCookies_ephemeral() {
 
55
    if (OxideTestingUtils.DATA_PATH == "") {
 
56
      skip("Can't run session cookie tests withour a permanent storage");
 
57
    }
 
58
 
 
59
    var webView = _createWebView(WebContext.SessionCookieModeEphemeral);
 
60
    _clear(webView);
 
61
    _set_cookies(webView);
 
62
    _deleteWebView(webView);
 
63
 
 
64
    webView = _createWebView(WebContext.SessionCookieModeRestored);
 
65
    verify(!_test_can_get_session_cookies(webView),
 
66
           "Shouldn't be able to read session cookies");
 
67
    _deleteWebView(webView);
 
68
  }
 
69
 
 
70
  function test_WebContext_sessionCookies_persistent() {
 
71
    if (OxideTestingUtils.DATA_PATH == "") {
 
72
      skip("Can't run session cookie tests withour a permanent storage");
 
73
    }
 
74
 
 
75
    var webView = _createWebView(WebContext.SessionCookieModeRestored);
 
76
    _clear(webView);
 
77
    _set_cookies(webView);
 
78
    _deleteWebView(webView);
 
79
 
 
80
    // In this mode, we can't load the session cookies but we can write them
 
81
    webView = _createWebView(WebContext.SessionCookieModePersistent);
 
82
    verify(!_test_can_get_session_cookies(webView),
 
83
           "Shouldn't be able to read session cookies");
 
84
    _set_cookies(webView);
 
85
    _deleteWebView(webView);
 
86
 
 
87
    // Session cookies written while in persistent mode should be there
 
88
    webView = _createWebView(WebContext.SessionCookieModeRestored);
 
89
    verify(_test_can_get_session_cookies(webView),
 
90
           "Should be able to read session cookies");
 
91
    _deleteWebView(webView);
 
92
  }
 
93
 
 
94
  function test_WebContext_sessionCookies_restored() {
 
95
    if (OxideTestingUtils.DATA_PATH == "") {
 
96
      skip("Can't run session cookie tests withour a permanent storage");
 
97
    }
 
98
      
 
99
    var webView = _createWebView(WebContext.SessionCookieModeRestored);
 
100
    _clear(webView);
 
101
    _set_cookies(webView);
 
102
    _deleteWebView(webView);
 
103
 
 
104
    webView = _createWebView(WebContext.SessionCookieModeRestored);
 
105
    verify(_test_can_get_session_cookies(webView),
 
106
           "Should be able to read session cookies");
 
107
    _deleteWebView(webView);
 
108
  }
 
109
 
 
110
  Component {
 
111
    id: webViewComponent
 
112
    TestWebView {
 
113
      focus: true
 
114
      width: 200
 
115
      height: 200
 
116
    }
 
117
  }
 
118
 
 
119
  Component {
 
120
    id: webContextComponent
 
121
    TestWebContext {}
 
122
  }
 
123
}