From ada88090ead2c3b9d0804794c5f20f9b24d1c2b1 Mon Sep 17 00:00:00 2001 From: Nik Nyby Date: Sat, 17 Jan 2015 17:12:36 -0500 Subject: Import to new git repository The old repository was using almost 100mb of space because of all the unnecessary files in the history. So I've imported the code to a new git repository. Unfortunately the history isn't viewable from this repository anymore. To see what happened with LibreJS before 2015, see the old Bazaar repo here: http://bzr.savannah.gnu.org/lh/librejs/ --- test/test-web-label-finder.js | 195 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 test/test-web-label-finder.js (limited to 'test/test-web-label-finder.js') diff --git a/test/test-web-label-finder.js b/test/test-web-label-finder.js new file mode 100644 index 0000000..ea0588a --- /dev/null +++ b/test/test-web-label-finder.js @@ -0,0 +1,195 @@ +/** + * GNU LibreJS - A browser add-on to block nonfree nontrivial JavaScript. + * * + * Copyright (C) 2014 Loic J. Duros + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +const {Cc,Ci} = require('chrome'); +var parser = Cc["@mozilla.org/xmlextras/domparser;1"] + .createInstance(Ci.nsIDOMParser); + +var WebLabelFinder = require('html_script_finder/web_labels/js_web_labels') + .WebLabelFinder; + +exports.testSearchForJsLinkEmpty = function (assert) { + var finder = new WebLabelFinder(); + var doc = parser.parseFromString('', 'text/html'); + finder.init(doc, 'http://www.rootstrikers.org', function() {}); + assert.strictEqual(finder.searchForJsLink(), false); +}; + +exports.testSearchForJsLinkJsLicense = function (assert) { + var finder = new WebLabelFinder(); + var doc = parser.parseFromString( + '' + + 'JavaScript License Info' + + '', 'text/html'); + finder.init(doc, 'http://www.rootstrikers.org', function() {}); + + assert.strictEqual( + finder.searchForJsLink(), + 'http://www.rootstrikers.org/lic.html#librejs=true' + ); +}; + +exports.testSearchForJsLinkDataJsLicense = function (assert) { + var finder = new WebLabelFinder(); + var doc = parser.parseFromString( + '' + + 'JavaScript License' + + '', 'text/html'); + finder.init(doc, 'http://www.rootstrikers.org', function() {}); + + assert.strictEqual( + finder.searchForJsLink(), + 'http://www.rootstrikers.org/lic.html#librejs=true' + ); +}; + +exports.testIsLicenseFreeEmpty = function(assert) { + var finder = new WebLabelFinder(); + // listCheck is initialized by WebLabelFinder.matchListWithDefs... + // I'm initializing it here to prevent errors when testing. + finder.listCheck = {}; + + var lic = { + licenses: [] + }; + var licArray = []; + var jslicenseURL = null; + var callback = function() { }; + assert.strictEqual( + finder.isLicenseFree(lic, licArray, jslicenseURL, callback), + false, + 'A script with no license info is considered nonfree' + ); +}; + +exports.testIsLicenseFree1 = function(assert) { + var finder = new WebLabelFinder(); + finder.listCheck = {}; + + var lic = { + 'fileName': 'filepicker.js', + 'fileUrl': 'http://www.rootstrikers.org/vendor/filepicker.js', + 'fileHash': null, + 'licenses': [{ + 'licenseName': 'Expat', + 'licenseUrl': 'http://www.jclark.com/xml/copying.txt' + }], + 'sources':[{ + 'sourceName': 'filepicker.js', + 'sourceUrl': 'http://www.rootstrikers.org/vendor/filepicker.js' + }] + }; + var licArray = []; + var jslicenseURL = null; + var callback = function() { }; + assert.strictEqual( + finder.isLicenseFree(lic, licArray, jslicenseURL, callback), + true, + 'A script with one free license is considered free' + ); +}; + +exports.testIsLicenseFree3 = function(assert) { + var finder = new WebLabelFinder(); + finder.listCheck = {}; + + var lic = { + 'fileName': 'all.min.js', + 'fileUrl': 'http://example.com/all.min.js', + 'fileHash': null, + 'licenses': [ + { + 'licenseName': 'GNU-GPL-3.0', + 'licenseUrl': 'http://www.gnu.org/licenses/gpl-3.0.html' + }, + { + 'licenseName': 'Expat', + 'licenseUrl': 'http://www.jclark.com/xml/copying.txt' + }, + { + 'licenseName': 'MPL-2.0', + 'licenseUrl': 'http://www.mozilla.org/MPL/2.0' + } + ], + 'sources':[ + { + 'sourceName': 'gpl3.js', + 'sourceUrl': 'http://www.example.com/gpl3.js' + }, + { + 'sourceName': 'expat.js', + 'sourceUrl': 'http://www.example.com/expat.js' + }, + { + 'sourceName': 'mpl.js', + 'sourceUrl': 'http://www.example.com/mpl.js' + } + ] + }; + var licArray = []; + var jslicenseURL = null; + var callback = function() { }; + assert.strictEqual( + finder.isLicenseFree(lic, licArray, jslicenseURL, callback), + true, + 'A script with three free licenses is considered free' + ); +}; + +exports.testIsLicenseNotFree = function(assert) { + var finder = new WebLabelFinder(); + finder.listCheck = {}; + + var lic = { + 'fileName': 'filepicker.js', + 'fileUrl': 'http://www.rootstrikers.org/vendor/filepicker.js', + 'fileHash': null, + 'licenses': [ + { + 'licenseName': 'Expat', + 'licenseUrl': 'http://www.jclark.com/xml/copying.txt' + }, + { + 'licenseName': 'Some-Unrecognized-License', + 'licenseUrl': 'http://www.example.com/nolicense.txt' + } + ], + 'sources':[ + { + 'sourceName': 'filepicker.js', + 'sourceUrl': 'http://www.rootstrikers.org/vendor/filepicker.js' + }, + { + 'sourceName': 'nonfree.js', + 'sourceUrl': 'http://www.example.com/nonfree.js' + } + ] + }; + var licArray = []; + var jslicenseURL = null; + var callback = function() { }; + assert.strictEqual( + finder.isLicenseFree(lic, licArray, jslicenseURL, callback), + false, + 'A script with one free license and one nonfree is considered nonfree' + ); +}; + +require('sdk/test').run(exports); -- cgit v1.2.3