Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 const notificationProvider = chrome.notificationProvider; | 5 const notificationProvider = chrome.notificationProvider; |
| 6 | 6 |
| 7 function createNotification(notificationId, options) { | 7 function createNotification(notificationId, options) { |
| 8 return new Promise(function (resolve, reject) { | 8 return new Promise(function (resolve, reject) { |
| 9 chrome.notifications.create(notificationId, options, function (id) { | 9 chrome.notifications.create(notificationId, options, function (id) { |
| 10 if (chrome.runtime.lastError) { | 10 if (chrome.runtime.lastError) { |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 90 resolve(notifierExists); | 90 resolve(notifierExists); |
| 91 return; | 91 return; |
| 92 }); | 92 }); |
| 93 }); | 93 }); |
| 94 }; | 94 }; |
| 95 | 95 |
| 96 function failTest(testName) { | 96 function failTest(testName) { |
| 97 chrome.test.fail(testName); | 97 chrome.test.fail(testName); |
| 98 }; | 98 }; |
| 99 | 99 |
| 100 function listenForShowSettings() {} | |
| 101 | |
| 100 function testFunctions() { | 102 function testFunctions() { |
| 101 var myId = chrome.runtime.id; | 103 var myId = chrome.runtime.id; |
| 102 var id1 = "id1"; | 104 var id1 = "id1"; |
| 103 var returnId = myId + "-" + id1; | 105 var returnId = myId + "-" + id1; |
| 104 var content = { | 106 var content = { |
| 105 type: "basic", | 107 type: "basic", |
| 106 iconUrl: "icon.png", | 108 iconUrl: "icon.png", |
| 107 title: "Title", | 109 title: "Title", |
| 108 message: "This is the message." | 110 message: "This is the message." |
| 109 }; | 111 }; |
| 110 | 112 |
| 113 // Add listener to onShowSettings to show that this extension has advanced | |
| 114 // settings. | |
| 115 chrome.notifications.onShowSettings.addListener(listenForShowSettings); | |
| 116 | |
| 111 // Create a notification, so there will be one existing notification | 117 // Create a notification, so there will be one existing notification |
| 112 createNotification(id1, content) | 118 createNotification(id1, content) |
|
dewittj
2014/08/12 18:21:05
it would be better if this test also verified that
liyanhou
2014/08/13 21:06:26
Done.
| |
| 113 .catch(function() { failTest("notifications.create"); }) | 119 .catch(function() { failTest("notifications.create"); }) |
| 114 // Notify the sender that a notificaion was clicked. | 120 // Notify the sender that a notificaion was clicked. |
| 115 .then(function() { return notifyOnClicked(myId, returnId); }) | 121 .then(function() { return notifyOnClicked(myId, returnId); }) |
| 116 .catch(function() { failTest("NotifyOnClicked1"); }) | 122 .catch(function() { failTest("NotifyOnClicked"); }) |
| 117 // Try to notify that an non-existent notification was clicked. | 123 // Try to notify that an non-existent notification was clicked. |
| 118 .then(function() { return notifyOnClicked(myId, "doesNotExist"); }) | 124 .then(function() { return notifyOnClicked(myId, "doesNotExist"); }) |
| 119 // Fail if it returns true. | 125 // Fail if it returns true. |
| 120 .then(function() { failTest("NotifyOnClicked2"); }) | 126 .then(function() { failTest("NotifyOnClicked"); }) |
| 121 // Notify the sender that a notificaion button was clicked. | 127 // Notify the sender that a notificaion button was clicked. |
| 122 .catch(function() { return notifyOnButtonClicked(myId, returnId, 0); }) | 128 .catch(function() { return notifyOnButtonClicked(myId, returnId, 0); }) |
| 123 .catch(function() { failTest("NotifyOnButtonClicked"); }) | 129 .catch(function() { failTest("NotifyOnButtonClicked"); }) |
| 124 // Try to notify that a non-existent notification button was clicked. | 130 // Try to notify that a non-existent notification button was clicked. |
| 125 .then(function() { return notifyOnButtonClicked(myId, "doesNotExist", 0)}) | 131 .then(function() { return notifyOnButtonClicked(myId, "doesNotExist", 0)}) |
| 126 .then(function() { failTest("NotifyOnButtonClicked"); }) | 132 .then(function() { failTest("NotifyOnButtonClicked"); }) |
| 127 // Try to notify that an non-existent notification was cleared. | 133 // Try to notify that an non-existent notification was cleared. |
| 128 .catch(function () { return notifyOnCleared(myId, "doesNotExist"); }) | 134 .catch(function () { return notifyOnCleared(myId, "doesNotExist"); }) |
| 129 .then(function() { failTest("NotifyOnCleared"); }) | 135 .then(function() { failTest("NotifyOnCleared"); }) |
| 130 // Notify that the original notification was cleared. | 136 // Notify that the original notification was cleared. |
| 131 .catch(function() { return notifyOnCleared(myId, returnId); }) | 137 .catch(function() { return notifyOnCleared(myId, returnId); }) |
| 132 .catch(function() { failTest("NotifyOnCleared"); }) | 138 .catch(function() { failTest("NotifyOnCleared"); }) |
| 139 // Notify the sender that the permission level is changed by the user | |
| 133 .then(function () { return notifyOnPermissionLevelChanged(myId, | 140 .then(function () { return notifyOnPermissionLevelChanged(myId, |
| 134 "granted"); }) | 141 "granted"); }) |
| 135 .catch(function() { failTest("NotifyOnPermissionLevelChanged"); }) | 142 .catch(function() { failTest("NotifyOnPermissionLevelChanged"); }) |
| 136 .then(function () { return notifyOnShowSettings(myId); }) | 143 .then(function () { return notifyOnShowSettings(myId); }) |
| 137 .catch(function() { failTest("NotifyOnShowSettings"); }) | 144 .catch(function() { failTest("NotifyOnShowSettings"); }) |
| 138 .then(function() { chrome.test.succeed(); }); | 145 // Try to notify a non existent sender that a user checked its settings |
| 146 .then(function () { return notifyOnShowSettings("DoesNotExist"); }) | |
| 147 // Fail if it returns true | |
| 148 .then(function() { failTest("NotifyOnShowSettings"); }) | |
| 149 .catch(function() { chrome.test.succeed(); }) | |
| 139 }; | 150 }; |
| 140 | 151 |
| 141 chrome.test.runTests([ testFunctions ]); | 152 chrome.test.runTests([ testFunctions ]); |
| OLD | NEW |