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

Unified Diff: chrome/test/data/extensions/api_test/gcm/functions/send/send.js

Issue 129113002: Move GcmApi test cases into separate subdir in order to use RunExtensionTest (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Patch Created 6 years, 11 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/extensions/api_test/gcm/functions/send/send.js
diff --git a/chrome/test/data/extensions/api_test/gcm/functions/send/send.js b/chrome/test/data/extensions/api_test/gcm/functions/send/send.js
new file mode 100644
index 0000000000000000000000000000000000000000..82f6d679140657a961e131557918474c1bca1f92
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/gcm/functions/send/send.js
@@ -0,0 +1,135 @@
+// 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 createMessage() {
+ return {
+ messageId: "message-id",
+ destinationId: "destination-id",
+ timeToLive: 2419200,
+ data: {
+ "key1": "value1",
+ "key2": "value"
+ }
+ };
+}
+
+function successfulSend(message) {
+ chrome.gcm.send(message, function(messageId) {
+ chrome.test.assertEq(message.messageId, messageId);
+ chrome.test.succeed();
+ });
+}
+
+function unsuccessfulSend(message) {
+ try {
+ chrome.gcm.send(message, function(messageId) {
+ chrome.test.fail(message);
+ });
+ } catch(e) {
+ chrome.test.succeed();
+ }
+}
+
+function scenario(messageMutations, send) {
+ var message = createMessage();
+ messageMutations.forEach(function(mutation) {
+ mutation(message);
+ });
+ send(message);
+}
+
+function expectSuccessWhen() {
+ scenario(Array.prototype.slice.call(arguments), successfulSend);
+}
+
+function expectFailureWhen() {
+ scenario(Array.prototype.slice.call(arguments), unsuccessfulSend);
+}
+
+chrome.test.runTests([
+ function successWhenHappyPath() {
+ expectSuccessWhen(/* no changes to message here */);
+ },
+ function successWhenTtlIsZero() {
+ expectSuccessWhen(function(message) { message.timeToLive = 0; });
+ },
+ function successWhenTtlIsMissing() {
+ expectSuccessWhen(function(message) { delete message.timeToLive; });
+ },
+ function failureWhenTtlIsNegative() {
+ expectFailureWhen(function(message) { message.timeToLive = -1; });
+ },
+ function failureWhenTtlIsTooLarge() {
+ expectFailureWhen(function(message) { message.timeToLive = 24192001; });
+ },
+ function failureWhenMessageIdMissing() {
+ expectFailureWhen(function(message) { delete message.messageId; });
+ },
+ function failureWhenMessageIdIsEmpty() {
+ expectFailureWhen(function(message) { message.messageId = ""; });
+ },
+ function failureWhenDestinationIdMissing() {
+ expectFailureWhen(function(message) { delete message.destinationId; });
+ },
+ function failureWhenDestinationIdIsEmpty() {
+ expectFailureWhen(function(message) { message.destinationId = ""; });
+ },
+ function failureWhenDataIsMissing() {
+ expectFailureWhen(function(message) { delete message.data; });
+ },
+ function failureWhenDataIsEmpty() {
+ expectFailureWhen(function(message) { message.data = {}; });
+ },
+ function failureWhenDataKeyIsEmpty() {
+ expectFailureWhen(function(message) { message.data[""] = "value"; });
+ },
+ function successWhenDataKeyHasGoogDotInIt() {
+ expectSuccessWhen(function(message) {
+ message.data["something.goog."] = "value";
+ });
+ },
+ function failureWhenDataKeyIsGoogDot() {
+ expectFailureWhen(function(message) { message.data["goog."] = "value"; });
+ },
+ function failureWhenDataKeyIsGoogDotPrefixed() {
+ expectFailureWhen(function(message) {
+ message.data["goog.something"] = "value";
+ });
+ },
+ function successWhenDataKeyHasGoogleInIt() {
+ expectSuccessWhen(function(message) {
+ message.data["somthing.google"] = "value";
+ });
+ },
+ function failureWhenDataKeyIsGoogle() {
+ expectFailureWhen(function(message) {
+ message.data["google"] = "value";
+ });
+ },
+ function failureWhenDataKeyIsGooglePrefixed() {
+ expectFailureWhen(function(message) {
+ message.data["googleSomething"] = "value";
+ });
+ },
+ function failureWhenMessageIsTooLarge() {
+ expectFailureWhen(function(message) {
+ function generateString(base, len) {
+ // Generates a string of size |len| by concatenating |base| multiple
+ // times and trimming to |len|.
+ while (base.length < len) base += base;
+ return base.substring(0, len);
+ }
+
+ var source = "abcdefghijklmnopqrstuvwxyz";
+ // Creates 8 * (256 + 256) == 4096 bytes of message data which together
+ // with data put in by default is more than allowed max.
+ var entries = 8;
+ while (entries > 0) {
+ var s = generateString(source + entries, 256);
+ message.data[s] = s;
+ --entries;
+ }
+ });
+ }
+]);

Powered by Google App Engine
This is Rietveld 408576698