1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #import <Cocoa/Cocoa.h>
7 #include "base/memory/scoped_ptr.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
10 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_model_observer_for_cocoa.h"
11 #import "chrome/browser/ui/cocoa/cocoa_profile_test.h"
12 #include "chrome/test/base/testing_profile.h"
16 class BookmarkModelObserverForCocoaTest : public CocoaProfileTest {
20 TEST_F(BookmarkModelObserverForCocoaTest, TestCallback) {
21 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
22 const BookmarkNode* node = model->AddURL(model->bookmark_bar_node(),
23 0, ASCIIToUTF16("super"),
24 GURL("http://www.google.com"));
26 __block size_t pings = 0U;
27 __block size_t deletions = 0U;
29 BookmarkModelObserverForCocoa::ChangeCallback callback =
30 ^(BOOL nodeWasDeleted) {
36 scoped_ptr<BookmarkModelObserverForCocoa>
37 observer(new BookmarkModelObserverForCocoa(model,
39 observer->StartObservingNode(node);
42 EXPECT_EQ(0U, deletions);
44 model->SetTitle(node, ASCIIToUTF16("duper"));
46 EXPECT_EQ(0U, deletions);
48 model->SetURL(node, GURL("http://www.google.com/reader"));
50 EXPECT_EQ(0U, deletions);
52 model->Move(node, model->other_node(), 0);
54 EXPECT_EQ(0U, deletions);
56 model->Remove(node->parent(), 0);
58 EXPECT_EQ(1U, deletions);