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

Unified Diff: chrome/test/data/webui/settings/people_page_change_picture_test.js

Issue 1871073004: Settings People Revamp: Simplify Change Picture browsertests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@0138-settings-people-manage-profile-browser-tests
Patch Set: fix hitting the check (and merge origin/master) Created 4 years, 8 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
« no previous file with comments | « chrome/test/data/webui/settings/cr_settings_browsertest.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/webui/settings/people_page_change_picture_test.js
diff --git a/chrome/test/data/webui/settings/people_page_change_picture_test.js b/chrome/test/data/webui/settings/people_page_change_picture_test.js
new file mode 100644
index 0000000000000000000000000000000000000000..f6f1b268761ec50fcaa9d58756a892635629830e
--- /dev/null
+++ b/chrome/test/data/webui/settings/people_page_change_picture_test.js
@@ -0,0 +1,225 @@
+// Copyright 2015 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.
+
+cr.define('settings_people_page_change_picture', function() {
+ /**
+ * @constructor
+ * @implements {settings.ChangePictureBrowserProxy}
+ * @extends {settings.TestBrowserProxy}
+ */
+ var TestChangePictureBrowserProxy = function() {
+ settings.TestBrowserProxy.call(this, [
+ 'initialize',
+ 'selectDefaultImage',
+ 'selectOldImage',
+ 'selectProfileImage',
+ 'photoTaken',
+ 'chooseFile',
+ ]);
+ };
+
+ TestChangePictureBrowserProxy.prototype = {
+ __proto__: settings.TestBrowserProxy.prototype,
+
+ /** @override */
+ initialize: function() {
+ cr.webUIListenerCallback('profile-image-changed',
+ 'fake-profile-image-url',
+ false /* selected */);
+
+ var fakeDefaultImages = [
+ {
+ author: 'Author1',
+ title: 'Title1',
+ url: 'chrome://foo/1.png',
+ website: 'http://foo1.com',
+ },
+ {
+ author: 'Author2',
+ title: 'Title2',
+ url: 'chrome://foo/2.png',
+ website: 'http://foo2.com',
+ },
+ ];
+ cr.webUIListenerCallback('default-images-changed', fakeDefaultImages);
+
+ this.methodCalled('initialize');
+ },
+
+ /** @override */
+ selectDefaultImage: function(imageUrl) {
+ cr.webUIListenerCallback('selected-image-changed', imageUrl);
+ this.methodCalled('selectDefaultImage', [imageUrl]);
+ },
+
+ /** @override */
+ selectOldImage: function() {
+ cr.webUIListenerCallback('old-image-changed', 'fake-old-image.jpg');
+ this.methodCalled('selectOldImage');
+ },
+
+ /** @override */
+ selectProfileImage: function() {
+ cr.webUIListenerCallback('profile-image-changed',
+ 'fake-profile-image-url',
+ true /* selected */);
+ this.methodCalled('selectProfileImage');
+ },
+
+ /** @override */
+ photoTaken: function() {
+ this.methodCalled('photoTaken');
+ },
+
+ /** @override */
+ chooseFile: function() {
+ this.methodCalled('chooseFile');
+ },
+ };
+
+ function registerChangePictureTests() {
+ suite('ChangePictureTests', function() {
+ var changePicture = null;
+ var browserProxy = null;
+ var settingsCamera = null;
+ var discardControlBar = null;
+
+ function getSelectedItem() {
+ return changePicture.$$('#selector .iron-selected');
+ }
+
+ suiteSetup(function() {
+ loadTimeData.overrideValues({
+ profilePhoto: 'Fake Profile Photo description',
+ });
+ });
+
+ setup(function() {
+ browserProxy = new TestChangePictureBrowserProxy();
+ settings.ChangePictureBrowserProxyImpl.instance_ = browserProxy;
+ PolymerTest.clearBody();
+ changePicture = document.createElement('settings-change-picture');
+ document.body.appendChild(changePicture);
+
+ settingsCamera = changePicture.$$('settings-camera');
+ assertTrue(!!settingsCamera);
+ discardControlBar = changePicture.$.discardControlBar;
+ assertTrue(!!discardControlBar);
+
+ return browserProxy.whenCalled('initialize').then(function() {
+ Polymer.dom.flush();
+ });
+ });
+
+ teardown(function() { changePicture.remove(); });
+
+ test('ChangePictureSelectCamera', function() {
+ var cameraIcon = changePicture.$.cameraImage;
+ assertTrue(!!cameraIcon);
+
+ // Force the camera to be absent, even if it's actually present.
+ cr.webUIListenerCallback('camera-presence-changed', false);
+ Polymer.dom.flush();
+
+ expectTrue(cameraIcon.hidden);
+ expectFalse(settingsCamera.cameraActive);
+
+ cr.webUIListenerCallback('camera-presence-changed', true);
+ Polymer.dom.flush();
+
+ expectFalse(cameraIcon.hidden);
+ expectFalse(settingsCamera.cameraActive);
+
+ MockInteractions.tap(cameraIcon);
+
+ Polymer.dom.flush();
+ expectFalse(cameraIcon.hidden);
+ expectTrue(settingsCamera.cameraActive);
+ expectEquals('camera', getSelectedItem().dataset.type);
+ expectTrue(discardControlBar.hidden);
+ });
+
+ test('ChangePictureProfileImage', function() {
+ var profileImage = changePicture.$.profileImage;
+ assertTrue(!!profileImage);
+
+ expectEquals(null, getSelectedItem());
+ MockInteractions.tap(profileImage);
+
+ return browserProxy.whenCalled('selectProfileImage').then(function() {
+ Polymer.dom.flush();
+
+ expectEquals('profile', getSelectedItem().dataset.type);
+ expectFalse(settingsCamera.cameraActive);
+ expectTrue(discardControlBar.hidden);
+ });
+ });
+
+ test('ChangePictureOldImage', function() {
+ // By default there is no old image and the element is hidden.
+ var oldImage = changePicture.$.oldImage;
+ assertTrue(!!oldImage);
+ assertTrue(oldImage.hidden);
+
+ cr.webUIListenerCallback('old-image-changed', 'fake-old-image.jpg');
+ Polymer.dom.flush();
+
+ // Expect the old image to be selected once an old image is sent via
+ // the native interface.
+ expectEquals('old', getSelectedItem().dataset.type);
+ expectFalse(oldImage.hidden);
+ expectFalse(settingsCamera.cameraActive);
+ expectFalse(discardControlBar.hidden);
+ });
+
+ test('ChangePictureSelectFirstDefaultImage', function() {
+ var firstDefaultImage = changePicture.$$('img[data-type="default"]');
+ assertTrue(!!firstDefaultImage);
+
+ MockInteractions.tap(firstDefaultImage);
+
+ return browserProxy.whenCalled('selectDefaultImage').then(
+ function(args) {
+ expectEquals('chrome://foo/1.png', args[0]);
+
+ Polymer.dom.flush();
+ expectEquals('default', getSelectedItem().dataset.type);
+ expectEquals(firstDefaultImage, getSelectedItem());
+ expectFalse(settingsCamera.cameraActive);
+ expectTrue(discardControlBar.hidden);
+ });
+ });
+
+ test('ChangePictureRestoreImageAfterDiscard', function() {
+ var firstDefaultImage = changePicture.$$('img[data-type="default"]');
+ assertTrue(!!firstDefaultImage);
+ var discardOldImage = changePicture.$.discardOldImage;
+ assertTrue(!!discardOldImage);
+
+ MockInteractions.tap(firstDefaultImage);
+
+ return browserProxy.whenCalled('selectDefaultImage').then(function() {
+ Polymer.dom.flush();
+ expectEquals(firstDefaultImage, getSelectedItem());
+
+ cr.webUIListenerCallback('old-image-changed', 'fake-old-image.jpg');
+
+ Polymer.dom.flush();
+ expectEquals('old', getSelectedItem().dataset.type);
+
+ MockInteractions.tap(discardOldImage);
+
+ Polymer.dom.flush();
+ expectEquals(firstDefaultImage, getSelectedItem());
+ });
+ });
+ });
+ }
+
+ return {
+ registerTests: function() {
+ registerChangePictureTests();
+ },
+ };
+});
« no previous file with comments | « chrome/test/data/webui/settings/cr_settings_browsertest.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698