From 29cea49197d3302e3554c96ca7f995542774f286 Mon Sep 17 00:00:00 2001 From: Manish Jethani Date: Sun, 15 Aug 2021 21:19:23 +0530 Subject: [PATCH] Add tests for SNFE serialization (#3825) --- platform/npm/tests/snfe.js | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/platform/npm/tests/snfe.js b/platform/npm/tests/snfe.js index f6823ce84..8f052bb34 100644 --- a/platform/npm/tests/snfe.js +++ b/platform/npm/tests/snfe.js @@ -128,4 +128,53 @@ describe('SNFE', () => { ])); }); }); + + describe('Serialization', () => { + beforeEach(async () => { + const globals = { URL, setTimeout, clearTimeout }; + + const { StaticNetFilteringEngine } = await createWorld('./index.js', { globals }); + + engine = await StaticNetFilteringEngine.create(); + }); + + it('should not reject with no lists', async () => { + await engine.useLists([]); + + await engine.serialize(); + }); + + it('should not reject with one empty list', async () => { + await engine.useLists([ + { name: 'easylist', raw: '' }, + ]); + + await engine.serialize(); + }); + + it('should not reject with one list containing one filter', async () => { + await engine.useLists([ + { name: 'easylist', raw: '/foo^' }, + ]); + + await engine.serialize(); + }); + + it('should not reject with one list containing multiple filters', async () => { + await engine.useLists([ + { name: 'easylist', raw: '/foo^\n||example.com^' }, + ]); + + await engine.serialize(); + }); + + it('should not reject with multiple lists containing multiple filters', async () => { + await engine.useLists([ + { name: 'easylist', raw: '/foo^\n||example.com^' }, + { name: 'easyprivacy', raw: '||example.net/bar/\n^bar.js?' }, + ]); + + await engine.serialize(); + }); + }); });