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

Side by Side Diff: remoting/webapp/unittests/apps_v2_migration_unittest.js

Issue 848993002: Improve apps v2 upgrade UX (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Refactor + UT Created 5 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 unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 (function() {
6
7 'use strict';
8
9 var originalWindowsStorage = null;
10 var mockIsAppsV2 = null;
11 var mockChromeStorage = {};
12
13 function pass() {
14 ok(true);
15 QUnit.start();
16 }
17
18 function fail() {
19 ok(false);
20 QUnit.start();
21 }
22
23 /**
24 * @param {string} v1UserName
25 * @param {string} v1UserEmail
26 * @param {string} currentEmail
27 * @param {boolean} v1HasHost
28 */
29 function setup_(v1UserName, v1UserEmail, currentEmail, v1HasHosts) {
Jamie 2015/01/20 22:32:02 Assuming you need this because the module's setup
30 chromeMocks.activate(['storage']);
31 originalWindowsStorage = window.localStorage;
32 mockIsAppsV2 = sinon.stub(base, 'isAppsV2');
33 remoting.identity = {};
Jamie 2015/01/20 22:32:01 There is already a MockIdentity class you can use
kelvinp 2015/01/21 21:16:21 The mock identify class mocks chrome.identity but
34
35 remoting.identity.getUserInfo = function(onDone, onError) {
36 return onDone(currentEmail);
37 };
38
39 window.localStorage['remoting-email'] = v1UserEmail;
40 window.localStorage['remoting-fullname'] = v1UserName;
41
42 mockIsAppsV2.returns(false);
43 remoting.AppsV2Migration.savePreferences(v1HasHosts);
44 }
45
46 module('AppsV2Migration', {
47 teardown: function() {
48 chromeMocks.restore();
49 window.localStorage = originalWindowsStorage;
50 remoting.identity = null;
51 mockIsAppsV2.restore();
52 }
53 });
54
55 QUnit.asyncTest(
56 'hasHostsInV1App() should reject the promise if v1 user has same identity',
57 function() {
58 setup_('v1userName', 'v2user@gmail.com', 'v2user@gmail.com', true);
59 mockIsAppsV2.returns(true);
60 remoting.AppsV2Migration.hasHostsInV1App().then(fail, pass);
61 });
62
63 QUnit.asyncTest(
64 'hasHostsInV1App() should reject the promise if v1 user has no hosts',
65 function() {
66 setup_('v1userName', 'v1user@gmail.com', 'v2user@gmail.com', false);
67 mockIsAppsV2.returns(true);
68 remoting.AppsV2Migration.hasHostsInV1App().then(fail, pass);
69 });
70
71 QUnit.asyncTest(
72 'hasHostsInV1App() should reject always reject the promise in v1',
Jamie 2015/01/20 22:32:01 Duplicate "reject".
kelvinp 2015/01/21 21:16:21 Done.
73 function() {
74 setup_('v1userName', 'v1user@gmail.com', 'v2user@gmail.com', true);
75 mockIsAppsV2.returns(false);
76 remoting.AppsV2Migration.hasHostsInV1App().then(fail, pass);
77 });
78
79 QUnit.asyncTest(
80 'hasHostsInV1App() should return v1 identity if v1 user has hosts',
81 function() {
82 setup_('v1userName', 'v1user@gmail.com', 'v2user@gmail.com', true);
83 mockIsAppsV2.returns(true);
84 remoting.AppsV2Migration.hasHostsInV1App().then(
85 function(result) {
86 QUnit.equal(result.email, 'v1user@gmail.com');
87 QUnit.equal(result.fullName, 'v1userName');
88 pass();
89 }, fail
90 );
91 });
92
93 QUnit.asyncTest(
94 'savePreferences() should clear the preferences on v2',
95 function() {
96 setup_('v1userName', 'v1user@gmail.com', 'v2user@gmail.com', true);
97 mockIsAppsV2.returns(true);
98 remoting.AppsV2Migration.savePreferences(true);
Jamie 2015/01/20 22:32:01 As stated earlier, there is some subtlety to this
kelvinp 2015/01/21 21:16:21 I have removed the hostHost parameter from the met
99 remoting.AppsV2Migration.hasHostsInV1App().then(fail, pass);
100 });
101
102 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698