Index: chrome/test/data/extensions/api_test/gcm/functions/register_validation/register_validation.js |
diff --git a/chrome/test/data/extensions/api_test/gcm/functions/register_validation/register_validation.js b/chrome/test/data/extensions/api_test/gcm/functions/register_validation/register_validation.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b30607b23246b426f96ef33084509f4e6268a2fd |
--- /dev/null |
+++ b/chrome/test/data/extensions/api_test/gcm/functions/register_validation/register_validation.js |
@@ -0,0 +1,62 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+function generateSenderIds(size) { |
+ var senders = []; |
+ for (var i = 0; i < size; i++) { |
+ senders.push("Sender" + i); |
+ } |
+ return senders; |
+} |
+ |
+function toArrayDefinitionString(senderIds) { |
+ var idsString = "["; |
+ senderIds.forEach(function(element, index) { |
+ if (index > 0) idsString += ", "; |
+ idsString += "\"" + element + "\""; |
+ }); |
+ idsString += "]"; |
+ return idsString; |
+} |
+ |
+function registerSuccessfully(senderIds) { |
+ chrome.gcm.register(senderIds, function(registrationId) { |
+ chrome.test.assertEq("" + senderIds.length, registrationId); |
+ chrome.test.succeed(); |
+ }); |
+} |
+ |
+function registerInvalidParameters(senderIds) { |
+ try { |
+ chrome.gcm.register(senderIds, function(registrationId) { |
+ chrome.test.fail("Arguments: " + toArrayDefinitionString(senderIds)); |
+ }); |
+ } catch (e) { |
+ chrome.test.succeed(); |
+ }; |
+} |
+ |
+chrome.test.runTests([ |
+ function successWithOneSender() { |
+ registerSuccessfully(generateSenderIds(1)); |
+ }, |
+ function successWithMultipleSenders() { |
+ registerSuccessfully(generateSenderIds(10)); |
+ }, |
+ function successWithMaxSenders() { |
+ registerSuccessfully(generateSenderIds(100)); |
+ }, |
+ function failureWithNoSenders() { |
+ registerInvalidParameters([]); |
+ }, |
+ function failureWithEmptySenderOnly() { |
+ registerInvalidParameters([""]); |
+ }, |
+ function failureWithEmptySender() { |
+ registerInvalidParameters(["good", ""]); |
+ }, |
+ function failureWithTooManySenders() { |
+ registerInvalidParameters(generateSenderIds(101)); |
+ } |
+]); |