Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: chrome/test/data/extensions/api_test/settings/split_incognito/background.html

Issue 8762014: Move another set of extension tests to manifest_version 2 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 <script> 1 <!--
2 var api = chrome.experimental.storage; 2 * Copyright (c) 2011 The Chromium Authors. All rights reserved. Use of this
3 var assertEq = chrome.test.assertEq; 3 * source code is governed by a BSD-style license that can be found in the
4 var inIncognitoContext = chrome.extension.inIncognitoContext; 4 * LICENSE file.
5 5 -->
6 ['sync', 'local'].forEach(function(namespace) { 6 <script src="background.js"></script>
7 api[namespace].notifications = [];
8 api.onChanged.addListener(function(changes, event_namespace) {
9 if (event_namespace == namespace) {
10 changes.forEach(function(change) {
11 api[namespace].notifications.push(change);
12 });
13 }
14 });
15 });
16
17 // The test from C++ runs "actions", where each action is defined here.
18 // This allows the test to be tightly controlled between incognito and
19 // non-incognito modes.
20 // Each function accepts a callback which should be run when the settings
21 // operation fully completes.
22 var testActions = {
23 noop: function(callback) {
24 this.get("", callback);
25 },
26 assertEmpty: function(callback) {
27 this.get(null, function(settings) {
28 chrome.test.assertEq({}, settings);
29 callback();
30 });
31 },
32 assertFoo: function(callback) {
33 this.get(null, function(settings) {
34 chrome.test.assertEq({foo: "bar"}, settings);
35 callback();
36 });
37 },
38 setFoo: function(callback) {
39 this.set({foo: "bar"}, callback);
40 },
41 removeFoo: function(callback) {
42 this.remove("foo", callback);
43 },
44 clear: function(callback) {
45 this.clear(callback);
46 },
47 assertNoNotifications: function(callback) {
48 assertEq([], this.notifications);
49 callback();
50 },
51 clearNotifications: function(callback) {
52 this.notifications.length = 0;
53 callback();
54 },
55 assertAddFooNotification: function(callback) {
56 assertEq([{ key: 'foo', newValue: 'bar' }], this.notifications);
57 callback();
58 },
59 assertDeleteFooNotification: function(callback) {
60 assertEq([{ key: 'foo', oldValue: 'bar' }], this.notifications);
61 callback();
62 }
63 };
64
65 // The only test we run. Runs "actions" (as defined above) until told
66 // to stop (when the message has isFinalAction set to true).
67 function testEverything() {
68 function next() {
69 var waiting = inIncognitoContext ? "waiting_incognito" : "waiting";
70 chrome.test.sendMessage(waiting, function(messageJson) {
71 var message = JSON.parse(messageJson);
72 var action = testActions[message.action];
73 if (!action) {
74 chrome.test.fail("Unknown action: " + message.action);
75 return;
76 }
77 action.bind(api[message.namespace])(
78 message.isFinalAction ? chrome.test.succeed : next);
79 });
80 }
81 next();
82 }
83
84 chrome.test.runTests([testEverything]);
85 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698