| // Copyright 2017 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. |
| |
| (async function() { |
| await TestRunner.loadModule('help'); |
| |
| TestRunner.addResult(`Unit test for release note\n`); |
| |
| Help.releaseNoteText = [ |
| {version: 3}, |
| {version: 4}, |
| {version: 5}, |
| ]; |
| |
| function testMaybeShowInDrawer(lastSeenVersion) { |
| return testMaybeShowInDrawerWithSettings(lastSeenVersion, {showReleaseNote: true}); |
| } |
| |
| function testMaybeShowInDrawerWithSettings(lastSeenVersion, {showReleaseNote}) { |
| TestRunner.addResult(`Last seen version: ${lastSeenVersion}`); |
| TestRunner.addSniffer(UI.viewManager, 'showView', onShowView); |
| var showedReleaseNote = false; |
| |
| Help._innerShowReleaseNoteIfNeeded(lastSeenVersion, Help.latestReleaseNote().version, showReleaseNote); |
| |
| function onShowView() { |
| showedReleaseNote = true; |
| } |
| if (showedReleaseNote) |
| TestRunner.addResult(`Showed release note in drawer - version: ${Help.latestReleaseNote().version}`); |
| else |
| TestRunner.addResult('Did not show release note drawer'); |
| } |
| |
| TestRunner.runTestSuite([ |
| function getLatestReleaseNote(next) { |
| var lastSeenVersion = 4; |
| testMaybeShowInDrawer(lastSeenVersion); |
| next(); |
| }, |
| function getReleaseNoteTwoVersionsAhead(next) { |
| var lastSeenVersion = 3; |
| testMaybeShowInDrawer(lastSeenVersion); |
| next(); |
| }, |
| function alreadySeenReleaseNote(next) { |
| var lastSeenVersion = 5; |
| testMaybeShowInDrawer(lastSeenVersion); |
| next(); |
| }, |
| function doNotShowReleaseNoteOnFreshProfile(next) { |
| var lastSeenVersion = 0; |
| testMaybeShowInDrawer(lastSeenVersion); |
| TestRunner.addResult(`Release note version in setting: ${Help._releaseNoteVersionSetting.get()}`); |
| next(); |
| }, |
| function showReleaseNoteSetting(next) { |
| TestRunner.addResult('\nDisabled showReleaseNote setting'); |
| var lastSeenVersion = 4; |
| testMaybeShowInDrawerWithSettings(lastSeenVersion, {showReleaseNote: false}); |
| |
| TestRunner.addResult('\nEnabled showReleaseNote setting'); |
| testMaybeShowInDrawerWithSettings(lastSeenVersion, {showReleaseNote: true}); |
| next(); |
| }, |
| ]); |
| })(); |