diff options
Diffstat (limited to 'chromium/chrome/renderer/resources/extensions/notifications_custom_bindings.gtestjs')
-rw-r--r-- | chromium/chrome/renderer/resources/extensions/notifications_custom_bindings.gtestjs | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/chromium/chrome/renderer/resources/extensions/notifications_custom_bindings.gtestjs b/chromium/chrome/renderer/resources/extensions/notifications_custom_bindings.gtestjs new file mode 100644 index 00000000000..af1e89f4e1a --- /dev/null +++ b/chromium/chrome/renderer/resources/extensions/notifications_custom_bindings.gtestjs @@ -0,0 +1,104 @@ +// Copyright 2014 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. + +/** + * Test fixture for the notifications custom bindings adapter. + * @constructor + * @extends {testing.Test} + */ +function NotificationsCustomBindingsTest() { + testing.Test.call(this); +} + +NotificationsCustomBindingsTest.prototype = { + __proto__: testing.Test.prototype, + + /** @Override */ + extraLibraries: [ + 'notifications_test_util.js', + 'notifications_custom_bindings.js' + ], +}; + +TEST_F('NotificationsCustomBindingsTest', 'TestImageDataSetter', function () { + var c = {}; + var k = "key"; + var callback = imageDataSetter(c, k); + callback('val'); + expectTrue(c[k] === 'val'); +}); + +TEST_F('NotificationsCustomBindingsTest', 'TestGetUrlSpecs', function () { + var imageSizes = { + scaleFactor: 1.0, + icon: { width: 10, height: 10 }, + image: { width: 24, height: 32 }, + buttonIcon: { width: 2, height: 2} + }; + + var notificationDetails = {}; + + var emptySpecs = getUrlSpecs(imageSizes, notificationDetails); + expectTrue(emptySpecs.length === 0); + + notificationDetails.iconUrl = "iconUrl"; + notificationDetails.imageUrl = "imageUrl"; + notificationDetails.buttons = [ + {iconUrl: "buttonOneIconUrl"}, + {iconUrl: "buttonTwoIconUrl"}]; + + var allSpecs = getUrlSpecs(imageSizes, notificationDetails); + expectTrue(allSpecs.length === 4); + + expectFalse(notificationDetails.iconBitmap === "test"); + expectFalse(notificationDetails.imageBitmap === "test"); + expectFalse(notificationDetails.buttons[0].iconBitmap === "test"); + expectFalse(notificationDetails.buttons[1].iconBitmap === "test"); + + for (var i = 0; i < allSpecs.length; i++) { + var expectedKeys = ['path', 'width', 'height', 'callback']; + var spec = allSpecs[i]; + for (var j in expectedKeys) { + expectTrue(spec.hasOwnProperty(expectedKeys[j])); + } + spec.callback(spec.path + "|" + spec.width + "|" + spec.height); + } + + expectTrue(notificationDetails.iconBitmap === "iconUrl|10|10"); + expectTrue(notificationDetails.imageBitmap === "imageUrl|24|32"); + expectTrue( + notificationDetails.buttons[0].iconBitmap === "buttonOneIconUrl|2|2"); + expectTrue( + notificationDetails.buttons[1].iconBitmap === "buttonTwoIconUrl|2|2"); +}); + +TEST_F('NotificationsCustomBindingsTest', 'TestGetUrlSpecsScaled', function () { + var imageSizes = { + scaleFactor: 2.0, + icon: { width: 10, height: 10 }, + image: { width: 24, height: 32 }, + buttonIcon: { width: 2, height: 2} + }; + var notificationDetails = { + iconUrl: "iconUrl", + imageUrl: "imageUrl", + buttons: [ + {iconUrl: "buttonOneIconUrl"}, + {iconUrl: "buttonTwoIconUrl"} + ] + }; + + var allSpecs = getUrlSpecs(imageSizes, notificationDetails); + for (var i = 0; i < allSpecs.length; i++) { + var spec = allSpecs[i]; + spec.callback(spec.path + "|" + spec.width + "|" + spec.height); + } + + expectEquals(notificationDetails.iconBitmap, "iconUrl|20|20"); + expectEquals(notificationDetails.imageBitmap, "imageUrl|48|64"); + expectEquals(notificationDetails.buttons[0].iconBitmap, + "buttonOneIconUrl|4|4"); + expectEquals(notificationDetails.buttons[1].iconBitmap, + "buttonTwoIconUrl|4|4"); +}); |