1/** 2 * Copyright 2017 Google Inc. All rights reserved. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16import expect from 'expect'; 17import { 18 expectCookieEquals, 19 getTestState, 20 setupTestBrowserHooks, 21 setupTestPageAndContextHooks, 22 itFailsFirefox, 23} from './mocha-utils'; // eslint-disable-line import/extensions 24 25describe('DefaultBrowserContext', function () { 26 setupTestBrowserHooks(); 27 setupTestPageAndContextHooks(); 28 it('page.cookies() should work', async () => { 29 const { page, server } = getTestState(); 30 31 await page.goto(server.EMPTY_PAGE); 32 await page.evaluate(() => { 33 document.cookie = 'username=John Doe'; 34 }); 35 expectCookieEquals(await page.cookies(), [ 36 { 37 name: 'username', 38 value: 'John Doe', 39 domain: 'localhost', 40 path: '/', 41 sameParty: false, 42 expires: -1, 43 size: 16, 44 httpOnly: false, 45 secure: false, 46 session: true, 47 sourcePort: 8907, 48 sourceScheme: 'NonSecure', 49 }, 50 ]); 51 }); 52 it('page.setCookie() should work', async () => { 53 const { page, server } = getTestState(); 54 55 await page.goto(server.EMPTY_PAGE); 56 await page.setCookie({ 57 name: 'username', 58 value: 'John Doe', 59 }); 60 expect(await page.evaluate(() => document.cookie)).toBe( 61 'username=John Doe' 62 ); 63 expectCookieEquals(await page.cookies(), [ 64 { 65 name: 'username', 66 value: 'John Doe', 67 domain: 'localhost', 68 path: '/', 69 sameParty: false, 70 expires: -1, 71 size: 16, 72 httpOnly: false, 73 secure: false, 74 session: true, 75 sourcePort: 80, 76 sourceScheme: 'NonSecure', 77 }, 78 ]); 79 }); 80 it('page.deleteCookie() should work', async () => { 81 const { page, server } = getTestState(); 82 83 await page.goto(server.EMPTY_PAGE); 84 await page.setCookie( 85 { 86 name: 'cookie1', 87 value: '1', 88 }, 89 { 90 name: 'cookie2', 91 value: '2', 92 } 93 ); 94 expect(await page.evaluate('document.cookie')).toBe('cookie1=1; cookie2=2'); 95 await page.deleteCookie({ name: 'cookie2' }); 96 expect(await page.evaluate('document.cookie')).toBe('cookie1=1'); 97 expectCookieEquals(await page.cookies(), [ 98 { 99 name: 'cookie1', 100 value: '1', 101 domain: 'localhost', 102 path: '/', 103 sameParty: false, 104 expires: -1, 105 size: 8, 106 httpOnly: false, 107 secure: false, 108 session: true, 109 sourcePort: 80, 110 sourceScheme: 'NonSecure', 111 }, 112 ]); 113 }); 114}); 115