Index: chrome/browser/ui/panels/panel_browser_view_browsertest.cc |
=================================================================== |
--- chrome/browser/ui/panels/panel_browser_view_browsertest.cc (revision 85062) |
+++ chrome/browser/ui/panels/panel_browser_view_browsertest.cc (working copy) |
@@ -3,21 +3,51 @@ |
// found in the LICENSE file. |
#include "base/command_line.h" |
+#include "base/i18n/time_formatting.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_window.h" |
+#include "chrome/browser/ui/panels/about_panel_bubble.h" |
#include "chrome/browser/ui/panels/panel.h" |
#include "chrome/browser/ui/panels/panel_browser_frame_view.h" |
#include "chrome/browser/ui/panels/panel_browser_view.h" |
+#include "chrome/browser/ui/panels/panel_originator_delegate.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/test/in_process_browser_test.h" |
+#include "grit/generated_resources.h" |
+#include "ui/base/l10n/l10n_util.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "views/controls/button/image_button.h" |
#include "views/controls/button/menu_button.h" |
+#include "views/controls/image_view.h" |
#include "views/controls/label.h" |
+#include "views/controls/link.h" |
+#include "views/controls/textfield/textfield.h" |
#include "views/controls/menu/menu_2.h" |
+class MockPanelOriginator : public PanelOriginatorDelegate { |
+ public: |
+ MockPanelOriginator() : install_time_(base::Time::Now()) {} |
+ virtual ~MockPanelOriginator() {} |
+ virtual std::string GetOriginatorName() const OVERRIDE { |
+ return "Foo"; |
+ } |
+ |
+ virtual std::string GetOriginatorDescription() const OVERRIDE { |
+ return "This is a description."; |
+ } |
+ |
+ virtual base::Time GetOriginatorInstallTime() const OVERRIDE { |
+ return install_time_; |
+ } |
+ |
+ private: |
+ base::Time install_time_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(MockPanelOriginator); |
+}; |
+ |
class PanelBrowserViewTest : public InProcessBrowserTest { |
public: |
PanelBrowserViewTest() : InProcessBrowserTest() { } |
@@ -248,4 +278,56 @@ |
browser_view2->Close(); |
EXPECT_FALSE(browser_view2->panel()); |
} |
+ |
+IN_PROC_BROWSER_TEST_F(PanelBrowserViewTest, AboutPanelBubble) { |
+ PanelBrowserView* browser_view = CreatePanelBrowserView("PanelTest"); |
+ scoped_ptr<MockPanelOriginator> mock_originator(new MockPanelOriginator()); |
+ |
+ AboutPanelBubble* bubble = AboutPanelBubble::Show( |
+ browser_view->GetWidget(), |
+ gfx::Rect(), |
+ BubbleBorder::BOTTOM_RIGHT, |
+ SkBitmap(), |
+ mock_originator.get()); |
+ AboutPanelBubble::AboutPanelBubbleView* contents = |
+ static_cast<AboutPanelBubble::AboutPanelBubbleView*>(bubble->contents()); |
+ EXPECT_EQ(6, contents->child_count()); |
+ EXPECT_TRUE(contents->Contains(contents->icon_)); |
+ EXPECT_TRUE(contents->Contains(contents->title_)); |
+ EXPECT_TRUE(contents->Contains(contents->install_date_)); |
+ EXPECT_TRUE(contents->Contains(contents->description_)); |
+ EXPECT_TRUE(contents->Contains(contents->uninstall_link_)); |
+ EXPECT_TRUE(contents->Contains(contents->report_abuse_link_)); |
+ |
+ EXPECT_GT(contents->title_->x(), contents->icon_->x()); |
+ EXPECT_GT(contents->title_->width(), 0); |
+ EXPECT_GT(contents->title_->height(), 0); |
+ EXPECT_EQ(contents->install_date_->x(), contents->title_->x()); |
+ EXPECT_GT(contents->install_date_->y(), contents->title_->y()); |
+ EXPECT_GT(contents->install_date_->width(), 0); |
+ EXPECT_GT(contents->install_date_->height(), 0); |
+ EXPECT_EQ(contents->description_->x(), contents->install_date_->x()); |
+ EXPECT_GT(contents->description_->y(), contents->install_date_->y()); |
+ EXPECT_GT(contents->description_->width(), 0); |
+ EXPECT_GT(contents->description_->height(), 0); |
+ EXPECT_EQ(contents->uninstall_link_->x(), contents->description_->x()); |
+ EXPECT_GT(contents->uninstall_link_->y(), contents->description_->y()); |
+ EXPECT_GT(contents->uninstall_link_->width(), 0); |
+ EXPECT_GT(contents->uninstall_link_->height(), 0); |
+ EXPECT_GT(contents->report_abuse_link_->x(), contents->uninstall_link_->x()); |
+ EXPECT_EQ(contents->report_abuse_link_->y(), contents->uninstall_link_->y()); |
+ EXPECT_GT(contents->report_abuse_link_->width(), 0); |
+ EXPECT_GT(contents->report_abuse_link_->height(), 0); |
+ |
+ EXPECT_STREQ(mock_originator->GetOriginatorName().c_str(), |
+ WideToUTF8(contents->title_->GetText()).c_str()); |
+ string16 time_text = l10n_util::GetStringFUTF16( |
+ IDS_ABOUT_PANEL_BUBBLE_EXTENSION_INSTALL_DATE, |
+ base::TimeFormatFriendlyDate( |
+ mock_originator->GetOriginatorInstallTime())); |
+ EXPECT_STREQ(UTF16ToUTF8(time_text).c_str(), |
+ WideToUTF8(contents->install_date_->GetText()).c_str()); |
+ EXPECT_STREQ(mock_originator->GetOriginatorDescription().c_str(), |
+ UTF16ToUTF8(contents->description_->text()).c_str()); |
+} |
#endif |