summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/webextensions/test/xpcshell/test_bug554133.js
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2018-02-10 02:51:36 -0500
committerMatt A. Tobin <email@mattatobin.com>2018-02-10 02:51:36 -0500
commit37d5300335d81cecbecc99812747a657588c63eb (patch)
tree765efa3b6a56bb715d9813a8697473e120436278 /toolkit/mozapps/webextensions/test/xpcshell/test_bug554133.js
parentb2bdac20c02b12f2057b9ef70b0a946113a00e00 (diff)
parent4fb11cd5966461bccc3ed1599b808237be6b0de9 (diff)
downloadUXP-37d5300335d81cecbecc99812747a657588c63eb.tar
UXP-37d5300335d81cecbecc99812747a657588c63eb.tar.gz
UXP-37d5300335d81cecbecc99812747a657588c63eb.tar.lz
UXP-37d5300335d81cecbecc99812747a657588c63eb.tar.xz
UXP-37d5300335d81cecbecc99812747a657588c63eb.zip
Merge branch 'ext-work'
Diffstat (limited to 'toolkit/mozapps/webextensions/test/xpcshell/test_bug554133.js')
-rw-r--r--toolkit/mozapps/webextensions/test/xpcshell/test_bug554133.js86
1 files changed, 86 insertions, 0 deletions
diff --git a/toolkit/mozapps/webextensions/test/xpcshell/test_bug554133.js b/toolkit/mozapps/webextensions/test/xpcshell/test_bug554133.js
new file mode 100644
index 000000000..c252e1ced
--- /dev/null
+++ b/toolkit/mozapps/webextensions/test/xpcshell/test_bug554133.js
@@ -0,0 +1,86 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+// This verifies that if the AMO response provides total_results,
+// searchSucceeded is called with the correct number of total results
+
+Components.utils.import("resource://gre/modules/addons/AddonRepository.jsm");
+
+const PREF_GETADDONS_GETSEARCHRESULTS = "extensions.getAddons.search.url";
+
+Components.utils.import("resource://testing-common/httpd.js");
+var server;
+
+var TESTS = [
+{
+ query: "bug554133",
+ maxResults: 2,
+ length: 2,
+ total: 100
+},
+{
+ query: "bug554133",
+ maxResults: 10,
+ length: 10,
+ total: 100
+},
+{
+ query: "bug554133",
+ maxResults: 100,
+ length: 10,
+ total: 100
+}
+];
+
+var gCurrentTest = 0;
+var SearchCallback = {
+ searchSucceeded: function(addons, length, total) {
+ do_check_false(AddonRepository.isSearching);
+ do_check_eq(addons.length, length);
+ do_check_eq(length, TESTS[gCurrentTest].length);
+ do_check_eq(total, TESTS[gCurrentTest].total);
+
+ gCurrentTest++;
+ run_current_test();
+ },
+
+ searchFailed: function() {
+ server.stop(do_test_finished);
+ do_throw("Search results failed");
+ }
+};
+
+function run_current_test() {
+ if (gCurrentTest < TESTS.length) {
+ var query = TESTS[gCurrentTest].query;
+ var maxResults = TESTS[gCurrentTest].maxResults;
+ AddonRepository.searchAddons(query, maxResults, SearchCallback);
+ }
+ else
+ server.stop(do_test_finished);
+}
+
+function run_test()
+{
+ // Setup for test
+ do_test_pending();
+ createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9");
+
+ startupManager();
+
+ server = new HttpServer();
+ server.registerDirectory("/", do_get_file("data"));
+ mapFile("/data/test_bug554133.xml", server);
+ server.start(-1);
+ gPort = server.identity.primaryPort;
+
+ // Point search to the test server
+ Services.prefs.setCharPref(PREF_GETADDONS_GETSEARCHRESULTS,
+ "http://localhost:" + gPort + "/data/test_%TERMS%.xml");
+
+ do_check_neq(AddonRepository, null);
+ gCurrentTest = 0;
+ run_current_test();
+}
+