summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/extension_installed_bubble_controller_unittest.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/cocoa/extension_installed_bubble_controller_unittest.mm')
-rw-r--r--chrome/browser/cocoa/extension_installed_bubble_controller_unittest.mm202
1 files changed, 0 insertions, 202 deletions
diff --git a/chrome/browser/cocoa/extension_installed_bubble_controller_unittest.mm b/chrome/browser/cocoa/extension_installed_bubble_controller_unittest.mm
deleted file mode 100644
index 9113960..0000000
--- a/chrome/browser/cocoa/extension_installed_bubble_controller_unittest.mm
+++ /dev/null
@@ -1,202 +0,0 @@
-// Copyright (c) 2010 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.
-
-#import <Cocoa/Cocoa.h>
-
-#include "base/basictypes.h"
-#include "base/file_path.h"
-#include "base/file_util.h"
-#include "base/path_service.h"
-#include "base/scoped_ptr.h"
-#include "base/values.h"
-#import "chrome/browser/browser_window.h"
-#import "chrome/browser/cocoa/browser_test_helper.h"
-#import "chrome/browser/cocoa/cocoa_test_helper.h"
-#import "chrome/browser/cocoa/extension_installed_bubble_controller.h"
-#include "chrome/common/chrome_paths.h"
-#include "chrome/common/extensions/extension.h"
-#include "chrome/common/extensions/extension_constants.h"
-#include "webkit/glue/image_decoder.h"
-
-// ExtensionInstalledBubbleController with removePageActionPreview overridden
-// to a no-op, because pageActions are not yet hooked up in the test browser.
-@interface ExtensionInstalledBubbleControllerForTest :
- ExtensionInstalledBubbleController {
-}
-
-// Do nothing, because browser window is not set up with page actions
-// for unit testing.
-- (void)removePageActionPreview;
-
-@end
-
-@implementation ExtensionInstalledBubbleControllerForTest
-
-- (void)removePageActionPreview { }
-
-@end
-
-namespace keys = extension_manifest_keys;
-
-class ExtensionInstalledBubbleControllerTest : public CocoaTest {
-
- public:
- virtual void SetUp() {
- CocoaTest::SetUp();
- browser_ = helper_.browser();
- window_ = helper_.CreateBrowserWindow()->GetNativeHandle();
- icon_ = LoadTestIcon();
- }
-
- virtual void TearDown() {
- helper_.CloseBrowserWindow();
- CocoaTest::TearDown();
- }
-
- // Load test icon from extension test directory.
- SkBitmap LoadTestIcon() {
- FilePath path;
- PathService::Get(chrome::DIR_TEST_DATA, &path);
- path = path.AppendASCII("extensions").AppendASCII("icon1.png");
-
- std::string file_contents;
- file_util::ReadFileToString(path, &file_contents);
- const unsigned char* data =
- reinterpret_cast<const unsigned char*>(file_contents.data());
-
- SkBitmap bitmap;
- webkit_glue::ImageDecoder decoder;
- bitmap = decoder.Decode(data, file_contents.length());
-
- return bitmap;
- }
-
- // Create a skeletal framework of either page action or browser action
- // type. This extension only needs to have a type and a name to initialize
- // the ExtensionInstalledBubble for unit testing.
- scoped_refptr<Extension> CreateExtension(
- extension_installed_bubble::ExtensionType type) {
- FilePath path;
- PathService::Get(chrome::DIR_TEST_DATA, &path);
- path = path.AppendASCII("extensions").AppendASCII("dummy");
-
- DictionaryValue extension_input_value;
- extension_input_value.SetString(keys::kVersion, "1.0.0.0");
- if (type == extension_installed_bubble::kPageAction) {
- extension_input_value.SetString(keys::kName, "page action extension");
- DictionaryValue* action = new DictionaryValue;
- action->SetString(keys::kPageActionId, "ExtensionActionId");
- action->SetString(keys::kPageActionDefaultTitle, "ExtensionActionTitle");
- action->SetString(keys::kPageActionDefaultIcon, "image1.png");
- ListValue* action_list = new ListValue;
- action_list->Append(action);
- extension_input_value.Set(keys::kPageActions, action_list);
- } else {
- extension_input_value.SetString(keys::kName, "browser action extension");
- DictionaryValue* browser_action = new DictionaryValue;
- // An empty dictionary is enough to create a Browser Action.
- extension_input_value.Set(keys::kBrowserAction, browser_action);
- }
-
- std::string error;
- return Extension::Create(
- path, Extension::INVALID, extension_input_value, false, &error);
- }
-
- // Allows us to create the window and browser for testing.
- BrowserTestHelper helper_;
-
- // Required to initialize the extension installed bubble.
- NSWindow* window_; // weak, owned by BrowserTestHelper.
-
- // Required to initialize the extension installed bubble.
- Browser* browser_; // weak, owned by BrowserTestHelper.
-
- // Skeleton extension to be tested; reinitialized for each test.
- scoped_refptr<Extension> extension_;
-
- // The icon_ to be loaded into the bubble window.
- SkBitmap icon_;
-};
-
-// Confirm that window sizes are set correctly for a page action extension.
-TEST_F(ExtensionInstalledBubbleControllerTest, PageActionTest) {
- extension_ = CreateExtension(extension_installed_bubble::kPageAction);
- ExtensionInstalledBubbleControllerForTest* controller =
- [[ExtensionInstalledBubbleControllerForTest alloc]
- initWithParentWindow:window_
- extension:extension_.get()
- browser:browser_
- icon:icon_];
- EXPECT_TRUE(controller);
-
- // Initialize window without having to calculate tabstrip locations.
- [controller initializeWindow];
- EXPECT_TRUE([controller window]);
-
- int height = [controller calculateWindowHeight];
- // Height should equal the vertical padding + height of all messages.
- int correctHeight = 2 * extension_installed_bubble::kOuterVerticalMargin +
- 2 * extension_installed_bubble::kInnerVerticalMargin +
- [controller getExtensionInstalledMsgFrame].size.height +
- [controller getExtensionInstalledInfoMsgFrame].size.height +
- [controller getExtraInfoMsgFrame].size.height;
- EXPECT_EQ(height, correctHeight);
-
- [controller setMessageFrames:height];
- NSRect msg3Frame = [controller getExtensionInstalledInfoMsgFrame];
- // Bottom message should be kOuterVerticalMargin pixels above window edge.
- EXPECT_EQ(msg3Frame.origin.y,
- extension_installed_bubble::kOuterVerticalMargin);
- NSRect msg2Frame = [controller getExtraInfoMsgFrame];
- // Pageaction message should be kInnerVerticalMargin pixels above bottom msg.
- EXPECT_EQ(msg2Frame.origin.y,
- msg3Frame.origin.y + msg3Frame.size.height +
- extension_installed_bubble::kInnerVerticalMargin);
- NSRect msg1Frame = [controller getExtensionInstalledMsgFrame];
- // Top message should be kInnerVerticalMargin pixels above Pageaction msg.
- EXPECT_EQ(msg1Frame.origin.y,
- msg2Frame.origin.y + msg2Frame.size.height +
- extension_installed_bubble::kInnerVerticalMargin);
-
- [controller setPageActionRemoved:YES];
- [controller close];
-}
-
-TEST_F(ExtensionInstalledBubbleControllerTest, BrowserActionTest) {
- extension_ = CreateExtension(extension_installed_bubble::kBrowserAction);
- ExtensionInstalledBubbleControllerForTest* controller =
- [[ExtensionInstalledBubbleControllerForTest alloc]
- initWithParentWindow:window_
- extension:extension_.get()
- browser:browser_
- icon:icon_];
- EXPECT_TRUE(controller);
-
- // Initialize window without having to calculate tabstrip locations.
- [controller initializeWindow];
- EXPECT_TRUE([controller window]);
-
- int height = [controller calculateWindowHeight];
- // Height should equal the vertical padding + height of all messages.
- int correctHeight = 2 * extension_installed_bubble::kOuterVerticalMargin +
- extension_installed_bubble::kInnerVerticalMargin +
- [controller getExtensionInstalledMsgFrame].size.height +
- [controller getExtensionInstalledInfoMsgFrame].size.height;
- EXPECT_EQ(height, correctHeight);
-
- [controller setMessageFrames:height];
- NSRect msg3Frame = [controller getExtensionInstalledInfoMsgFrame];
- // Bottom message should start kOuterVerticalMargin pixels above window edge.
- EXPECT_EQ(msg3Frame.origin.y,
- extension_installed_bubble::kOuterVerticalMargin);
- NSRect msg1Frame = [controller getExtensionInstalledMsgFrame];
- // Top message should start kInnerVerticalMargin pixels above top of
- // extensionInstalled message, because page action message is hidden.
- EXPECT_EQ(msg1Frame.origin.y,
- msg3Frame.origin.y + msg3Frame.size.height +
- extension_installed_bubble::kInnerVerticalMargin);
-
- [controller close];
-}