diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /dom/tests/unit/test_geolocation_reset_accuracy_wrap.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | dom/tests/unit/test_geolocation_reset_accuracy_wrap.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/dom/tests/unit/test_geolocation_reset_accuracy_wrap.js b/dom/tests/unit/test_geolocation_reset_accuracy_wrap.js new file mode 100644 index 0000000000..4160fda14a --- /dev/null +++ b/dom/tests/unit/test_geolocation_reset_accuracy_wrap.js @@ -0,0 +1,61 @@ +const providerCID = Components.ID("{14aa4b81-e266-45cb-88f8-89595dece114}"); +const providerContract = "@mozilla.org/geolocation/provider;1"; + +const categoryName = "geolocation-provider"; + +var provider = { + QueryInterface: ChromeUtils.generateQI([ + "nsIFactory", + "nsIGeolocationProvider", + ]), + createInstance: function eventsink_ci(iid) { + return this.QueryInterface(iid); + }, + startup() {}, + watch() {}, + shutdown() {}, + setHighAccuracy(enable) { + this._isHigh = enable; + if (enable) { + this._seenHigh = true; + do_send_remote_message("high_acc_enabled"); + } + }, + _isHigh: false, + _seenHigh: false, +}; + +function run_test() { + // XPCShell does not get a profile by default. The geolocation service + // depends on the settings service which uses IndexedDB and IndexedDB + // needs a place where it can store databases. + do_get_profile(); + + Components.manager.nsIComponentRegistrar.registerFactory( + providerCID, + "Unit test geo provider", + providerContract, + provider + ); + + Services.catMan.addCategoryEntry( + categoryName, + "unit test", + providerContract, + false, + true + ); + + Services.prefs.setBoolPref("geo.provider.network.scan", false); + + run_test_in_child("test_geolocation_reset_accuracy.js", check_results); +} + +function check_results() { + // check the provider was set to high accuracy during the test + Assert.ok(provider._seenHigh); + // check the provider is not currently set to high accuracy + Assert.ok(!provider._isHigh); + + do_test_finished(); +} |