| Index: chrome/browser/ui/cocoa/extension_installed_bubble_controller_unittest.mm
|
| ===================================================================
|
| --- chrome/browser/ui/cocoa/extension_installed_bubble_controller_unittest.mm (revision 71534)
|
| +++ chrome/browser/ui/cocoa/extension_installed_bubble_controller_unittest.mm (working copy)
|
| @@ -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/ui/cocoa/browser_test_helper.h"
|
| -#import "chrome/browser/ui/cocoa/cocoa_test_helper.h"
|
| -#import "chrome/browser/ui/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];
|
| -}
|
|
|