1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/components/social/test/browser/browser_SocialProvider.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,85 @@ 1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.7 + 1.8 +let provider; 1.9 + 1.10 +function test() { 1.11 + waitForExplicitFinish(); 1.12 + 1.13 + let manifest = { 1.14 + origin: 'http://example.com', 1.15 + name: "Example Provider", 1.16 + workerURL: "http://example.com/browser/toolkit/components/social/test/browser/worker_social.js" 1.17 + }; 1.18 + 1.19 + SocialService.addProvider(manifest, function (p) { 1.20 + provider = p; 1.21 + runTests(tests, undefined, undefined, function () { 1.22 + SocialService.removeProvider(p.origin, function() { 1.23 + ok(!provider.enabled, "removing an enabled provider should have disabled the provider"); 1.24 + let port = provider.getWorkerPort(); 1.25 + ok(!port, "should not be able to get a port after removing the provider"); 1.26 + provider = null; 1.27 + finish(); 1.28 + }); 1.29 + }); 1.30 + }); 1.31 +} 1.32 + 1.33 +let tests = { 1.34 + testSingleProvider: function(next) { 1.35 + ok(provider.enabled, "provider is initially enabled"); 1.36 + let port = provider.getWorkerPort(); 1.37 + ok(port, "should be able to get a port from enabled provider"); 1.38 + port.close(); 1.39 + ok(provider.workerAPI, "should be able to get a workerAPI from enabled provider"); 1.40 + 1.41 + provider.enabled = false; 1.42 + 1.43 + ok(!provider.enabled, "provider is now disabled"); 1.44 + port = provider.getWorkerPort(); 1.45 + ok(!port, "shouldn't be able to get a port from disabled provider"); 1.46 + ok(!provider.workerAPI, "shouldn't be able to get a workerAPI from disabled provider"); 1.47 + 1.48 + provider.enabled = true; 1.49 + 1.50 + ok(provider.enabled, "provider is re-enabled"); 1.51 + let port = provider.getWorkerPort(); 1.52 + ok(port, "should be able to get a port from re-enabled provider"); 1.53 + port.close(); 1.54 + ok(provider.workerAPI, "should be able to get a workerAPI from re-enabled provider"); 1.55 + next(); 1.56 + }, 1.57 + testTwoProviders: function(next) { 1.58 + // add another provider, test both workers 1.59 + let manifest = { 1.60 + origin: 'http://test2.example.com', 1.61 + name: "Example Provider 2", 1.62 + workerURL: "http://test2.example.com/browser/toolkit/components/social/test/browser/worker_social.js" 1.63 + }; 1.64 + SocialService.addProvider(manifest, function (provider2) { 1.65 + ok(provider.enabled, "provider is initially enabled"); 1.66 + ok(provider2.enabled, "provider2 is initially enabled"); 1.67 + let port = provider.getWorkerPort(); 1.68 + let port2 = provider2.getWorkerPort(); 1.69 + ok(port, "have port for provider"); 1.70 + ok(port2, "have port for provider2"); 1.71 + port.onmessage = function(e) { 1.72 + if (e.data.topic == "test-initialization-complete") { 1.73 + ok(true, "first provider initialized"); 1.74 + port2.postMessage({topic: "test-initialization"}); 1.75 + } 1.76 + } 1.77 + port2.onmessage = function(e) { 1.78 + if (e.data.topic == "test-initialization-complete") { 1.79 + ok(true, "second provider initialized"); 1.80 + SocialService.removeProvider(provider2.origin, function() { 1.81 + next(); 1.82 + }); 1.83 + } 1.84 + } 1.85 + port.postMessage({topic: "test-initialization"}); 1.86 + }); 1.87 + } 1.88 +}