puppeteer/third_party/phantomjs/test/module/webpage/cookies.js
2017-05-11 00:06:41 -07:00

113 lines
4.2 KiB
JavaScript

//! unsupported
async_test(function () {
var url = TEST_HTTP_BASE + "echo";
var page = new WebPage();
page.cookies = [{
'name' : 'Valid-Cookie-Name',
'value' : 'Valid-Cookie-Value',
'domain' : 'localhost',
'path' : '/',
'httponly' : true,
'secure' : false
},{
'name' : 'Valid-Cookie-Name-Sec',
'value' : 'Valid-Cookie-Value-Sec',
'domain' : 'localhost',
'path' : '/',
'httponly' : true,
'secure' : false,
'expires' : Date.now() + 3600 //< expires in 1h
}];
page.open(url, this.step_func(function (status) {
assert_equals(status, "success");
var headers = JSON.parse(page.plainText).headers;
assert_own_property(headers, 'cookie');
assert_regexp_match(headers.cookie, /\bValid-Cookie-Name\b/);
assert_regexp_match(headers.cookie, /\bValid-Cookie-Value\b/);
assert_regexp_match(headers.cookie, /\bValid-Cookie-Name-Sec\b/);
assert_regexp_match(headers.cookie, /\bValid-Cookie-Value-Sec\b/);
assert_not_equals(page.cookies.length, 0);
page.cookies = [];
page.open(url, this.step_func_done(function (status) {
assert_equals(status, "success");
var headers = JSON.parse(page.plainText).headers;
assert_no_property(headers, 'cookie');
}));
}));
}, "adding and deleting cookies with page.cookies");
async_test(function () {
var url = TEST_HTTP_BASE + "echo";
var page = new WebPage();
page.addCookie({
'name' : 'Added-Cookie-Name',
'value' : 'Added-Cookie-Value',
'domain' : 'localhost'
});
page.open(url, this.step_func(function (status) {
assert_equals(status, "success");
var headers = JSON.parse(page.plainText).headers;
assert_own_property(headers, 'cookie');
assert_regexp_match(headers.cookie, /\bAdded-Cookie-Name\b/);
assert_regexp_match(headers.cookie, /\bAdded-Cookie-Value\b/);
page.deleteCookie("Added-Cookie-Name");
page.open(url, this.step_func_done(function (status) {
assert_equals(status, "success");
var headers = JSON.parse(page.plainText).headers;
assert_no_property(headers, 'cookie');
}));
}));
}, "adding and deleting cookies with page.addCookie and page.deleteCookie");
async_test(function () {
var url = TEST_HTTP_BASE + "echo";
var page = new WebPage();
page.cookies = [
{ // domain mismatch.
'name' : 'Invalid-Cookie-Name-1',
'value' : 'Invalid-Cookie-Value-1',
'domain' : 'foo.example'
},{ // path mismatch: the cookie will be set,
// but won't be visible from the given URL (not same path).
'name' : 'Invalid-Cookie-Name-2',
'value' : 'Invalid-Cookie-Value-2',
'domain' : 'localhost',
'path' : '/bar'
},{ // cookie expired.
'name' : 'Invalid-Cookie-Name-3',
'value' : 'Invalid-Cookie-Value-3',
'domain' : 'localhost',
'expires' : 'Sat, 01 Jan 2000 00:00:00 GMT'
},{ // https only: the cookie will be set,
// but won't be visible from the given URL (not https).
'name' : 'Invalid-Cookie-Name-4',
'value' : 'Invalid-Cookie-Value-4',
'domain' : 'localhost',
'secure' : true
},{ // cookie expired (date in "sec since epoch").
'name' : 'Invalid-Cookie-Name-5',
'value' : 'Invalid-Cookie-Value-5',
'domain' : 'localhost',
'expires' : new Date().getTime() - 1 //< date in the past
},{ // cookie expired (date in "sec since epoch" - using "expiry").
'name' : 'Invalid-Cookie-Name-6',
'value' : 'Invalid-Cookie-Value-6',
'domain' : 'localhost',
'expiry' : new Date().getTime() - 1 //< date in the past
}];
page.open(url, this.step_func_done(function (status) {
assert_equals(status, "success");
var headers = JSON.parse(page.plainText).headers;
assert_no_property(headers, 'cookie');
}));
}, "page.cookies provides cookies only to appropriate requests");