Skip to content

Commit

Permalink
COOKIE macro
Browse files Browse the repository at this point in the history
  • Loading branch information
zhouyx committed Jun 13, 2019
1 parent 8771ae0 commit afdddbf
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 10 deletions.
3 changes: 1 addition & 2 deletions build-system/dep-check-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -342,8 +342,7 @@ exports.rules = [
'src/service/position-observer/position-observer-worker.js',
'extensions/amp-analytics/0.1/amp-analytics.js->' +
'src/service/cid-impl.js',
'extensions/amp-analytics/0.1/cookie-writer.js->' +
'src/service/cid-impl.js',
'extensions/amp-analytics/0.1/cookie.js->src/service/cid-impl.js',
'extensions/amp-next-page/0.1/next-page-service.js->' +
'src/service/position-observer/position-observer-impl.js',
'extensions/amp-next-page/0.1/next-page-service.js->' +
Expand Down
2 changes: 1 addition & 1 deletion build-system/tasks/presubmit-checks.js
Original file line number Diff line number Diff line change
Expand Up @@ -892,7 +892,7 @@ const forbiddenTermsSrcInclusive = {
'extensions/amp-form/0.1/amp-form.js',
'src/service/url-replacements-impl.js',
'extensions/amp-analytics/0.1/config.js',
'extensions/amp-analytics/0.1/cookie-writer.js',
'extensions/amp-analytics/0.1/cookie.js',
'extensions/amp-analytics/0.1/requests.js',
],
},
Expand Down
2 changes: 1 addition & 1 deletion extensions/amp-analytics/0.1/amp-analytics.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import {Activity} from './activity-impl';
import {AnalyticsConfig, mergeObjects} from './config';
import {AnalyticsEventType} from './events';
import {CookieWriter} from './cookie-writer';
import {CookieWriter} from './cookie';
import {
ExpansionOptions,
VariableService,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@

import {BASE_CID_MAX_AGE_MILLIS} from '../../../src/service/cid-impl';
import {Services} from '../../../src/services';
import {getCookie, setCookie} from '../../../src/cookies';
import {getMode} from '../../../src/mode';
import {hasOwn} from '../../../src/utils/object';
import {isInFie} from '../../../src/friendly-iframe-embed';
import {isObject} from '../../../src/types';
import {isProxyOrigin} from '../../../src/url';
import {setCookie} from '../../../src/cookies';
import {user} from '../../../src/log';
import {variableServiceForDoc} from './variables';

const TAG = 'amp-analytics/cookie-writer';
const TAG = 'amp-analytics/cookie';

const RESERVED_KEYS = {
'referrerDomains': true,
Expand Down Expand Up @@ -231,3 +231,16 @@ export class CookieWriter {
});
}
}

/**
* COOKIE macro resolver
* @param {!Window} win
* @param {string} name
* @return {?string}
*/
export function cookieReader(win, name) {
if (isProxyOrigin(win.location.href)) {
return null;
}
return getCookie(win, name);
}
8 changes: 4 additions & 4 deletions extensions/amp-analytics/0.1/test/test-cookie-writer.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@

import * as cookie from '../../../../src/cookies';
import * as lolex from 'lolex';
import {CookieWriter} from '../cookie-writer';
import {CookieWriter} from '../cookie';
import {dict} from '../../../../src/utils/object';
import {installLinkerReaderService} from '../linker-reader';
import {installVariableServiceForTesting} from '../variables';
import {stubService} from '../../../../testing/test-helper';

const TAG = '[amp-analytics/cookie-writer]';
const TAG = '[amp-analytics/cookie]';

describes.realWin(
'amp-analytics.cookie-writer',
'amp-analytics.cookie',
{
amp: true,
runtimeOn: true,
Expand Down Expand Up @@ -209,7 +209,7 @@ describes.realWin(
}
);

describes.fakeWin('amp-analytics.cookie-writer value', {amp: true}, env => {
describes.fakeWin('amp-analytics.cookie value', {amp: true}, env => {
let win;
let clock;
let doc;
Expand Down
18 changes: 18 additions & 0 deletions extensions/amp-analytics/0.1/test/test-variables.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import {
variableServiceForDoc,
} from '../variables';
import {Services} from '../../../../src/services';
import {getCookie} from '../../../../src/cookies';
import {
installLinkerReaderService,
linkerReaderServiceFor,
Expand Down Expand Up @@ -330,6 +331,23 @@ describes.fakeWin('amp-analytics.VariableService', {amp: true}, env => {
'a1b2c3&123'
);
});

it('COOKIE read cookie value', () => {
doc.cookie = 'test=123';
return check('COOKIE(test)', '123');
});

it('COOKIE cookie cannot found', () => {
doc.cookie = '';
expect(getCookie(win, 'test')).to.be.null;
return check('COOKIE(test)', '');
});

it('COOKIE on proxy origin', () => {
win.location = 'https://foo-bar.cdn.ampproject.org/c/foo.bar.com';
doc.cookie = 'test=123';
return check('COOKIE(test)', '');
});
});

describe('getNameArgs:', () => {
Expand Down
3 changes: 3 additions & 0 deletions extensions/amp-analytics/0.1/variables.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import {Services} from '../../../src/services';
import {base64UrlEncodeFromString} from '../../../src/utils/base64';
import {cookieReader} from './cookie';
import {devAssert, user, userAssert} from '../../../src/log';
import {dict} from '../../../src/utils/object';
import {getConsentPolicyState} from '../../../src/consent';
Expand Down Expand Up @@ -177,6 +178,8 @@ export class VariableService {
this.register_('LINKER_PARAM', (name, id) =>
this.linkerReader_.get(name, id)
);

this.register_('COOKIE', name => cookieReader(this.ampdoc_.win, name));
}

/**
Expand Down

0 comments on commit afdddbf

Please sign in to comment.