Cast: Stop logging kVideoFrameSentToEncoder and rename a couple events.
[chromium-blink-merge.git] / chrome / browser / chromeos / ui / idle_app_name_notification_view_unittest.cc
blobfef6630236adcfa3a3bfb015a19e2951fad19f6e
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.
5 #include "chrome/browser/chromeos/ui/idle_app_name_notification_view.h"
7 #include "base/command_line.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/extensions/extension_service.h"
10 #include "chrome/browser/extensions/test_extension_system.h"
11 #include "chrome/common/chrome_switches.h"
12 #include "chrome/test/base/browser_with_test_window_test.h"
13 #include "extensions/common/manifest_constants.h"
14 #include "grit/generated_resources.h"
15 #include "ui/base/l10n/l10n_util.h"
17 namespace {
18 const char kTestAppName[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
19 } // namespace
21 class IdleAppNameNotificationViewTest : public BrowserWithTestWindowTest {
22 public:
23 IdleAppNameNotificationViewTest()
24 : BrowserWithTestWindowTest(
25 Browser::TYPE_TABBED,
26 chrome::HOST_DESKTOP_TYPE_ASH,
27 false) {
30 virtual ~IdleAppNameNotificationViewTest() {
33 virtual void SetUp() OVERRIDE {
34 // Add the application switch.
35 CommandLine::ForCurrentProcess()->AppendSwitchASCII(::switches::kAppId,
36 kTestAppName);
38 BrowserWithTestWindowTest::SetUp();
40 base::DictionaryValue manifest;
41 manifest.SetString(extensions::manifest_keys::kName, "Test");
42 manifest.SetString(extensions::manifest_keys::kVersion, "1");
43 manifest.SetString(extensions::manifest_keys::kDescription, "Test app");
44 manifest.SetString("author.email", "Someone");
46 std::string error;
47 correct_extension_ =
48 extensions::Extension::Create(base::FilePath(),
49 extensions::Manifest::UNPACKED,
50 manifest,
51 extensions::Extension::NO_FLAGS,
52 kTestAppName,
53 &error);
54 base::DictionaryValue manifest2;
55 manifest2.SetString(extensions::manifest_keys::kName, "Test");
56 manifest2.SetString(extensions::manifest_keys::kVersion, "1");
57 manifest2.SetString(extensions::manifest_keys::kDescription, "Test app");
59 incorrect_extension_ =
60 extensions::Extension::Create(base::FilePath(),
61 extensions::Manifest::UNPACKED,
62 manifest2,
63 extensions::Extension::NO_FLAGS,
64 kTestAppName,
65 &error);
68 virtual void TearDown() OVERRIDE {
69 // The destruction of the widget might be a delayed task.
70 base::MessageLoop::current()->RunUntilIdle();
71 BrowserWithTestWindowTest::TearDown();
74 extensions::Extension* correct_extension() { return correct_extension_; }
75 extensions::Extension* incorrect_extension() { return incorrect_extension_; }
77 private:
78 // Extensions to test with.
79 scoped_refptr<extensions::Extension> correct_extension_;
80 scoped_refptr<extensions::Extension> incorrect_extension_;
82 DISALLOW_COPY_AND_ASSIGN(IdleAppNameNotificationViewTest);
85 // Check that creating and immediate destroying does not crash (and closes the
86 // message).
87 TEST_F(IdleAppNameNotificationViewTest, CheckTooEarlyDestruction) {
88 // Create a message which is visible for 10ms and fades in/out for 5ms.
89 scoped_ptr<chromeos::IdleAppNameNotificationView> message(
90 new chromeos::IdleAppNameNotificationView(10, 5, correct_extension()));
93 // Check that the message gets created and it destroys itself after time.
94 TEST_F(IdleAppNameNotificationViewTest, CheckSelfDestruction) {
95 // Create a message which is visible for 10ms and fades in/out for 5ms.
96 scoped_ptr<chromeos::IdleAppNameNotificationView> message(
97 new chromeos::IdleAppNameNotificationView(10, 5, correct_extension()));
98 EXPECT_TRUE(message->IsVisible());
100 // Wait now for some time and see that it closes itself again.
101 for (int i = 0; i < 50 && message->IsVisible(); i++) {
102 sleep(1);
103 base::MessageLoop::current()->RunUntilIdle();
105 EXPECT_FALSE(message->IsVisible());
108 // Check that the shown text for a correct application is correct.
109 TEST_F(IdleAppNameNotificationViewTest, CheckCorrectApp) {
110 // Create a message which is visible for 10ms and fades in/out for 5ms.
111 scoped_ptr<chromeos::IdleAppNameNotificationView> message(
112 new chromeos::IdleAppNameNotificationView(10, 5, correct_extension()));
113 base::string16 text = message->GetShownTextForTest();
114 // Check that the string is the application name.
115 base::string16 name = base::ASCIIToUTF16("Test");
116 EXPECT_EQ(name, text.substr(0, name.length()));
119 // Check that an invalid app gets shown accordingly.
120 TEST_F(IdleAppNameNotificationViewTest, CheckInvalidApp) {
121 // Create a message which is visible for 10ms and fades in/out for 5ms.
122 scoped_ptr<chromeos::IdleAppNameNotificationView> message(
123 new chromeos::IdleAppNameNotificationView(10, 5, NULL));
124 base::string16 text = message->GetShownTextForTest();
125 base::string16 error = l10n_util::GetStringUTF16(
126 IDS_IDLE_APP_NAME_UNKNOWN_APPLICATION_NOTIFICATION);
127 EXPECT_EQ(error, text);