15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/search_engines/template_url_service_factory.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/views/first_run_bubble.h" 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/test/base/testing_profile.h" 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/search_engines/template_url.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/search_engines/template_url_service.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/test/views_test_base.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/view.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/widget/widget.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class FirstRunBubbleTest : public views::ViewsTestBase { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FirstRunBubbleTest(); 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~FirstRunBubbleTest(); 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Overrides from views::ViewsTestBase: 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetUp() OVERRIDE; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestingProfile* profile() { return &profile_; } 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestingProfile profile_; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TemplateURL* default_t_url_; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(FirstRunBubbleTest); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)FirstRunBubbleTest::FirstRunBubbleTest() : default_t_url_(NULL) {} 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)FirstRunBubbleTest::~FirstRunBubbleTest() {} 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void FirstRunBubbleTest::SetUp() { 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ViewsTestBase::SetUp(); 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse( 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) &profile_, &TemplateURLServiceFactory::BuildInstanceFor); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TemplateURLService* turl_model = 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TemplateURLServiceFactory::GetForProfile(&profile_); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) turl_model->Load(); 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(FirstRunBubbleTest, CreateAndClose) { 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Create the anchor and parent widgets. 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) views::Widget::InitParams params = 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) CreateParams(views::Widget::InitParams::TYPE_WINDOW); 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<views::Widget> anchor_widget(new views::Widget); 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) anchor_widget->Init(params); 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) anchor_widget->Show(); 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FirstRunBubble* delegate = 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FirstRunBubble::ShowBubble(NULL, anchor_widget->GetContentsView()); 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(delegate != NULL); 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) delegate->GetWidget()->CloseNow(); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 59