| Index: chrome/browser/ui/cocoa/confirm_bubble_controller_unittest.mm
|
| ===================================================================
|
| --- chrome/browser/ui/cocoa/confirm_bubble_controller_unittest.mm (revision 122928)
|
| +++ chrome/browser/ui/cocoa/confirm_bubble_controller_unittest.mm (working copy)
|
| @@ -22,6 +22,10 @@
|
| // updates its status when ConfirmBubbleController calls its methods.
|
| class TestConfirmBubbleModel : public ConfirmBubbleModel {
|
| public:
|
| + TestConfirmBubbleModel(bool* model_deleted,
|
| + bool* accept_clicked,
|
| + bool* cancel_clicked,
|
| + bool* link_clicked);
|
| TestConfirmBubbleModel();
|
| virtual ~TestConfirmBubbleModel() OVERRIDE;
|
| virtual string16 GetTitle() const OVERRIDE;
|
| @@ -34,23 +38,25 @@
|
| virtual string16 GetLinkText() const OVERRIDE;
|
| virtual void LinkClicked() OVERRIDE;
|
|
|
| - bool accept_clicked() const { return accept_clicked_; }
|
| - bool cancel_clicked() const { return cancel_clicked_; }
|
| - bool link_clicked() const { return link_clicked_; }
|
| -
|
| private:
|
| - bool accept_clicked_;
|
| - bool cancel_clicked_;
|
| - bool link_clicked_;
|
| + bool* model_deleted_;
|
| + bool* accept_clicked_;
|
| + bool* cancel_clicked_;
|
| + bool* link_clicked_;
|
| };
|
|
|
| -TestConfirmBubbleModel::TestConfirmBubbleModel() :
|
| - accept_clicked_(false),
|
| - cancel_clicked_(false),
|
| - link_clicked_(false) {
|
| +TestConfirmBubbleModel::TestConfirmBubbleModel(bool* model_deleted,
|
| + bool* accept_clicked,
|
| + bool* cancel_clicked,
|
| + bool* link_clicked)
|
| + : model_deleted_(model_deleted),
|
| + accept_clicked_(accept_clicked),
|
| + cancel_clicked_(cancel_clicked),
|
| + link_clicked_(link_clicked) {
|
| }
|
|
|
| TestConfirmBubbleModel::~TestConfirmBubbleModel() {
|
| + *model_deleted_ = true;
|
| }
|
|
|
| string16 TestConfirmBubbleModel::GetTitle() const {
|
| @@ -75,11 +81,11 @@
|
| }
|
|
|
| void TestConfirmBubbleModel::Accept() {
|
| - accept_clicked_ = true;
|
| + *accept_clicked_ = true;
|
| }
|
|
|
| void TestConfirmBubbleModel::Cancel() {
|
| - cancel_clicked_ = true;
|
| + *cancel_clicked_ = true;
|
| }
|
|
|
| string16 TestConfirmBubbleModel::GetLinkText() const {
|
| @@ -87,21 +93,29 @@
|
| }
|
|
|
| void TestConfirmBubbleModel::LinkClicked() {
|
| - link_clicked_ = true;
|
| + *link_clicked_ = true;
|
| }
|
|
|
| } // namespace
|
|
|
| class ConfirmBubbleControllerTest : public CocoaTest {
|
| public:
|
| - ConfirmBubbleControllerTest() {
|
| + ConfirmBubbleControllerTest()
|
| + : model_deleted_(false),
|
| + accept_clicked_(false),
|
| + cancel_clicked_(false),
|
| + link_clicked_(false) {
|
| NSView* view = [test_window() contentView];
|
| - model_.reset(new TestConfirmBubbleModel);
|
| + // This model is owned by the controller created below.
|
| + model_ = new TestConfirmBubbleModel(&model_deleted_,
|
| + &accept_clicked_,
|
| + &cancel_clicked_,
|
| + &link_clicked_);
|
| gfx::Point origin(0, 0);
|
| controller_ =
|
| [[ConfirmBubbleController alloc] initWithParent:view
|
| origin:origin.ToCGPoint()
|
| - model:model_.get()];
|
| + model:model_];
|
| [view addSubview:[controller_ view]
|
| positioned:NSWindowAbove
|
| relativeTo:nil];
|
| @@ -111,13 +125,19 @@
|
| return (ConfirmBubbleView*)[controller_ view];
|
| }
|
|
|
| - TestConfirmBubbleModel* model() const {
|
| - return model_.get();
|
| - }
|
| + TestConfirmBubbleModel* model() const { return model_; }
|
| + bool model_deleted() const { return model_deleted_; }
|
| + bool accept_clicked() const { return accept_clicked_; }
|
| + bool cancel_clicked() const { return cancel_clicked_; }
|
| + bool link_clicked() const { return link_clicked_; }
|
|
|
| private:
|
| ConfirmBubbleController* controller_; // weak; owns self
|
| - scoped_ptr<TestConfirmBubbleModel> model_;
|
| + TestConfirmBubbleModel* model_; // weak
|
| + bool model_deleted_;
|
| + bool accept_clicked_;
|
| + bool cancel_clicked_;
|
| + bool link_clicked_;
|
| };
|
|
|
| // Verify clicking a button or a link removes the ConfirmBubbleView object and
|
| @@ -134,9 +154,9 @@
|
|
|
| contains_bubble_view = [[view subviews] containsObject:bubble_view];
|
| EXPECT_FALSE(contains_bubble_view);
|
| - EXPECT_TRUE(model()->accept_clicked());
|
| - EXPECT_FALSE(model()->cancel_clicked());
|
| - EXPECT_FALSE(model()->link_clicked());
|
| + EXPECT_TRUE(accept_clicked());
|
| + EXPECT_FALSE(cancel_clicked());
|
| + EXPECT_FALSE(link_clicked());
|
| }
|
|
|
| TEST_F(ConfirmBubbleControllerTest, ClickCancel) {
|
| @@ -151,9 +171,9 @@
|
|
|
| contains_bubble_view = [[view subviews] containsObject:bubble_view];
|
| EXPECT_FALSE(contains_bubble_view);
|
| - EXPECT_FALSE(model()->accept_clicked());
|
| - EXPECT_TRUE(model()->cancel_clicked());
|
| - EXPECT_FALSE(model()->link_clicked());
|
| + EXPECT_FALSE(accept_clicked());
|
| + EXPECT_TRUE(cancel_clicked());
|
| + EXPECT_FALSE(link_clicked());
|
| }
|
|
|
| TEST_F(ConfirmBubbleControllerTest, ClickLink) {
|
| @@ -168,7 +188,7 @@
|
|
|
| contains_bubble_view = [[view subviews] containsObject:bubble_view];
|
| EXPECT_FALSE(contains_bubble_view);
|
| - EXPECT_FALSE(model()->accept_clicked());
|
| - EXPECT_FALSE(model()->cancel_clicked());
|
| - EXPECT_TRUE(model()->link_clicked());
|
| + EXPECT_FALSE(accept_clicked());
|
| + EXPECT_FALSE(cancel_clicked());
|
| + EXPECT_TRUE(link_clicked());
|
| }
|
|
|