3
import com.canonical.Oxide 1.0
4
import com.canonical.Oxide.Testing 1.0
8
name: "WebContext_sessionCookies"
10
function _createWebView(sessionCookieMode) {
11
var webContext = webContextComponent.createObject(this, {
12
"sessionCookieMode": sessionCookieMode
14
var webView = webViewComponent.createObject(this, {
20
function _deleteWebView(webView) {
21
var context = webView.context;
22
OxideTestingUtils.destroyQObjectNow(webView);
23
OxideTestingUtils.destroyQObjectNow(context);
26
function _clear(webView) {
27
var restore = webView.context.cookiePolicy;
28
webView.context.cookiePolicy = WebContext.CookiePolicyAllowAll;
30
webView.url = "http://localhost:8080/clear-test-cookies-hack.py"
31
verify(webView.waitForLoadSucceeded(),
32
"Timed out waiting for successful load");
34
webView.context.cookiePolicy = restore;
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");
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");
48
var cookies = JSON.parse(webView.getTestApi().evaluateCode(
49
"return document.body.children[0].innerHTML", true));
51
return "sessionfoo" in cookies && cookies["sessionfoo"] == "sessionbar";
54
function test_WebContext_sessionCookies_ephemeral() {
55
if (OxideTestingUtils.DATA_PATH == "") {
56
skip("Can't run session cookie tests withour a permanent storage");
59
var webView = _createWebView(WebContext.SessionCookieModeEphemeral);
61
_set_cookies(webView);
62
_deleteWebView(webView);
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);
70
function test_WebContext_sessionCookies_persistent() {
71
if (OxideTestingUtils.DATA_PATH == "") {
72
skip("Can't run session cookie tests withour a permanent storage");
75
var webView = _createWebView(WebContext.SessionCookieModeRestored);
77
_set_cookies(webView);
78
_deleteWebView(webView);
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);
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);
94
function test_WebContext_sessionCookies_restored() {
95
if (OxideTestingUtils.DATA_PATH == "") {
96
skip("Can't run session cookie tests withour a permanent storage");
99
var webView = _createWebView(WebContext.SessionCookieModeRestored);
101
_set_cookies(webView);
102
_deleteWebView(webView);
104
webView = _createWebView(WebContext.SessionCookieModeRestored);
105
verify(_test_can_get_session_cookies(webView),
106
"Should be able to read session cookies");
107
_deleteWebView(webView);
120
id: webContextComponent