Skip to content

Commit

Permalink
Add new values to set-cookie scriptlet
Browse files Browse the repository at this point in the history
`Accept`, `Reject`, `y`, `n`, `N`, `No`
  • Loading branch information
AdamWr committed Jul 11, 2023
1 parent 793d78a commit 5345df7
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 20 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- new values (`Accept`, `Reject`, `y`, `n`, `N`, `No`) to `set-cookie` scriptlet
[#336](https://github.com/AdguardTeam/Scriptlets/issues/336)
- ability to use flags in regular expression scriptlet parameters
[#303](https://github.com/AdguardTeam/Scriptlets/issues/303)

Expand Down
33 changes: 13 additions & 20 deletions src/helpers/cookie-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,27 +60,20 @@ export const getLimitedCookieValue = (value: string): string | number | null =>
return null;
}

const allowedCookieValues = [
'true', 'True',
'false', 'False',
'yes', 'Yes',
'y', 'Y',
'no', 'No',
'n', 'N',
'ok', 'OK',
'Accept', 'Reject',
];

let validValue;
if (value === 'true') {
validValue = 'true';
} else if (value === 'True') {
validValue = 'True';
} else if (value === 'false') {
validValue = 'false';
} else if (value === 'False') {
validValue = 'False';
} else if (value === 'yes') {
validValue = 'yes';
} else if (value === 'Yes') {
validValue = 'Yes';
} else if (value === 'Y') {
validValue = 'Y';
} else if (value === 'no') {
validValue = 'no';
} else if (value === 'ok') {
validValue = 'ok';
} else if (value === 'OK') {
validValue = 'OK';
if (allowedCookieValues.includes(value)) {
validValue = value;
} else if (/^\d+$/.test(value)) {
validValue = parseFloat(value);
if (nativeIsNaN(validValue)) {
Expand Down
21 changes: 21 additions & 0 deletions tests/scriptlets/set-cookie.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,27 @@ test('Set cookie with valid value', (assert) => {
assert.strictEqual(document.cookie.includes(cName) && document.cookie.includes(cValue), true, 'Cookie is set');
clearCookie(cName);

cName = '__test-cookie_n';
cValue = 'n';
runScriptlet(name, [cName, cValue]);
assert.strictEqual(window.hit, 'FIRED', 'Hit was fired');
assert.strictEqual(document.cookie.includes(cName) && document.cookie.includes(cValue), true, 'Cookie is set');
clearCookie(cName);

cName = '__test-cookie_Accept';
cValue = 'Accept';
runScriptlet(name, [cName, cValue]);
assert.strictEqual(window.hit, 'FIRED', 'Hit was fired');
assert.strictEqual(document.cookie.includes(cName) && document.cookie.includes(cValue), true, 'Cookie is set');
clearCookie(cName);

cName = '__test-cookie_Reject';
cValue = 'Reject';
runScriptlet(name, [cName, cValue]);
assert.strictEqual(window.hit, 'FIRED', 'Hit was fired');
assert.strictEqual(document.cookie.includes(cName) && document.cookie.includes(cValue), true, 'Cookie is set');
clearCookie(cName);

cName = '__test-cookie_0';
cValue = '0';
runScriptlet(name, [cName, cValue]);
Expand Down

0 comments on commit 5345df7

Please sign in to comment.