// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
config.IS_CHROME_TEST = true;
// Guest served from TestServer.
config.IS_JS_ONLY_GUEST = false;
config.TEST_DIR = 'cleardata_session';
var clearDataTests = {};
// step1. Ask guest to load load session (bar) and persistent (foo) cookies.
// step2. Guest responds saying it has added cookies.
// embedder clears session cookie data of the guest via clearData API.
// step3. Ask guest for cookies that were set in step1.
// step4. Guest responds with cookie values, embedder verifies session cookie is
// unset but persistent cookie is still set.
var run = function() {
var container = document.createElement('div');
container.id = 'webview-tag-container';
document.body.appendChild(container);
chrome.test.getConfig(function(chromeConfig) {
window.console.log('getConfig: ' + chromeConfig);
utils.setUp(chromeConfig, config);
embedder.loadGuest(function() {
chrome.test.runTests([
clearDataTests.testCookies
]);
}, function(data) {
var handled = true;
switch (data[0]) {
case 'step2.cookies-added':
window.console.log('embedder, on message: ' + data[0]);
var onDataCleared = function() {
window.console.log('embedder.onDataCleared');
embedder.webview.contentWindow.postMessage(
JSON.stringify(['step3.get-cookies', 'foo', 'bar']), '*');
};
embedder.webview.clearData(
{ 'since': 1 }, { 'sessionCookies': true },
onDataCleared);
break;
case 'step4.got-cookies':
window.console.log('embedder, on message: ' + data[0]);
var cookies = data[1];
// barValue was a session cookie, which should be gone.
chrome.test.assertEq(['fooValue', null], cookies);
chrome.test.succeed();
break;
default:
handled = false;
break;
}
return handled;
});
});
};
// Tests.
clearDataTests.testCookies = function testCookies() {
window.console.log('clearDataTests.testCookies');
embedder.webview.contentWindow.postMessage(
JSON.stringify(['step1.add-cookies']), '*');
};
// Run test(s).
run();