Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3264)

Unified Diff: chrome/browser/ui/cocoa/custom_home_pages_model_unittest.mm

Issue 6339002: [Mac] Consolidate all files relating to preferences in a subdir of c/b/ui/coc... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/custom_home_pages_model_unittest.mm
===================================================================
--- chrome/browser/ui/cocoa/custom_home_pages_model_unittest.mm (revision 71447)
+++ chrome/browser/ui/cocoa/custom_home_pages_model_unittest.mm (working copy)
@@ -1,196 +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.
-
-#include "base/scoped_nsobject.h"
-#include "chrome/browser/prefs/session_startup_pref.h"
-#include "chrome/browser/ui/cocoa/browser_test_helper.h"
-#import "chrome/browser/ui/cocoa/custom_home_pages_model.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#import "testing/gtest_mac.h"
-#include "testing/platform_test.h"
-
-// A helper for KVO and NSNotifications. Makes a note that it's been called
-// back.
-@interface CustomHomePageHelper : NSObject {
- @public
- BOOL sawNotification_;
-}
-@end
-
-@implementation CustomHomePageHelper
-- (void)observeValueForKeyPath:(NSString*)keyPath
- ofObject:(id)object
- change:(NSDictionary*)change
- context:(void*)context {
- sawNotification_ = YES;
-}
-
-- (void)entryChanged:(NSNotification*)notify {
- sawNotification_ = YES;
-}
-@end
-
-@interface NSObject ()
-- (void)setURL:(NSString*)url;
-@end
-
-namespace {
-
-// Helper that creates an autoreleased entry.
-CustomHomePageEntry* MakeEntry(NSString* url) {
- CustomHomePageEntry* entry = [[[CustomHomePageEntry alloc] init] autorelease];
- [entry setURL:url];
- return entry;
-}
-
-// Helper that casts from |id| to the Entry type and returns the URL string.
-NSString* EntryURL(id entry) {
- return [static_cast<CustomHomePageEntry*>(entry) URL];
-}
-
-class CustomHomePagesModelTest : public PlatformTest {
- public:
- CustomHomePagesModelTest() {
- model_.reset([[CustomHomePagesModel alloc]
- initWithProfile:helper_.profile()]);
- }
- ~CustomHomePagesModelTest() { }
-
- BrowserTestHelper helper_;
- scoped_nsobject<CustomHomePagesModel> model_;
-};
-
-TEST_F(CustomHomePagesModelTest, Init) {
- scoped_nsobject<CustomHomePagesModel> model(
- [[CustomHomePagesModel alloc] initWithProfile:helper_.profile()]);
-}
-
-TEST_F(CustomHomePagesModelTest, GetSetURLs) {
- // Basic test.
- std::vector<GURL> urls;
- urls.push_back(GURL("http://www.google.com"));
- [model_ setURLs:urls];
- std::vector<GURL> received_urls = [model_.get() URLs];
- EXPECT_EQ(received_urls.size(), 1U);
- EXPECT_TRUE(urls[0] == received_urls[0]);
-
- // Set an empty list, make sure we get back an empty list.
- std::vector<GURL> empty;
- [model_ setURLs:empty];
- received_urls = [model_.get() URLs];
- EXPECT_EQ(received_urls.size(), 0U);
-
- // Give it a list with not well-formed URLs and make sure we get back.
- // only the good ones.
- std::vector<GURL> poorly_formed;
- poorly_formed.push_back(GURL("http://www.google.com")); // good
- poorly_formed.push_back(GURL("www.google.com")); // bad
- poorly_formed.push_back(GURL("www.yahoo.")); // bad
- poorly_formed.push_back(GURL("http://www.yahoo.com")); // good
- [model_ setURLs:poorly_formed];
- received_urls = [model_.get() URLs];
- EXPECT_EQ(received_urls.size(), 2U);
-}
-
-// Test that we get a KVO notification when called setURLs.
-TEST_F(CustomHomePagesModelTest, KVOObserveWhenListChanges) {
- scoped_nsobject<CustomHomePageHelper> kvo_helper(
- [[CustomHomePageHelper alloc] init]);
- [model_ addObserver:kvo_helper
- forKeyPath:@"customHomePages"
- options:0L
- context:NULL];
- EXPECT_FALSE(kvo_helper.get()->sawNotification_);
-
- std::vector<GURL> urls;
- urls.push_back(GURL("http://www.google.com"));
- [model_ setURLs:urls]; // Should send kvo change notification.
- EXPECT_TRUE(kvo_helper.get()->sawNotification_);
-
- [model_ removeObserver:kvo_helper forKeyPath:@"customHomePages"];
-}
-
-// Test the KVO "to-many" bindings for |customHomePages| and the KVO
-// notifiation when items are added to and removed from the list.
-TEST_F(CustomHomePagesModelTest, KVO) {
- EXPECT_EQ([model_ countOfCustomHomePages], 0U);
-
- scoped_nsobject<CustomHomePageHelper> kvo_helper(
- [[CustomHomePageHelper alloc] init]);
- [model_ addObserver:kvo_helper
- forKeyPath:@"customHomePages"
- options:0L
- context:NULL];
- EXPECT_FALSE(kvo_helper.get()->sawNotification_);
-
- // Cheat and insert NSString objects into the array. As long as we don't
- // call -URLs, we'll be ok.
- [model_ insertObject:MakeEntry(@"www.google.com") inCustomHomePagesAtIndex:0];
- EXPECT_TRUE(kvo_helper.get()->sawNotification_);
- [model_ insertObject:MakeEntry(@"www.yahoo.com") inCustomHomePagesAtIndex:1];
- [model_ insertObject:MakeEntry(@"dev.chromium.org")
- inCustomHomePagesAtIndex:2];
- EXPECT_EQ([model_ countOfCustomHomePages], 3U);
-
- EXPECT_NSEQ(@"http://www.yahoo.com/",
- EntryURL([model_ objectInCustomHomePagesAtIndex:1]));
-
- kvo_helper.get()->sawNotification_ = NO;
- [model_ removeObjectFromCustomHomePagesAtIndex:1];
- EXPECT_TRUE(kvo_helper.get()->sawNotification_);
- EXPECT_EQ([model_ countOfCustomHomePages], 2U);
- EXPECT_NSEQ(@"http://dev.chromium.org/",
- EntryURL([model_ objectInCustomHomePagesAtIndex:1]));
- EXPECT_NSEQ(@"http://www.google.com/",
- EntryURL([model_ objectInCustomHomePagesAtIndex:0]));
-
- [model_ removeObserver:kvo_helper forKeyPath:@"customHomePages"];
-}
-
-// Test that when individual items are changed that they broadcast a message.
-TEST_F(CustomHomePagesModelTest, ModelChangedNotification) {
- scoped_nsobject<CustomHomePageHelper> kvo_helper(
- [[CustomHomePageHelper alloc] init]);
- [[NSNotificationCenter defaultCenter]
- addObserver:kvo_helper
- selector:@selector(entryChanged:)
- name:kHomepageEntryChangedNotification
- object:nil];
-
- std::vector<GURL> urls;
- urls.push_back(GURL("http://www.google.com"));
- [model_ setURLs:urls];
- NSObject* entry = [model_ objectInCustomHomePagesAtIndex:0];
- [entry setURL:@"http://www.foo.bar"];
- EXPECT_TRUE(kvo_helper.get()->sawNotification_);
- [[NSNotificationCenter defaultCenter] removeObserver:kvo_helper];
-}
-
-TEST_F(CustomHomePagesModelTest, ReloadURLs) {
- scoped_nsobject<CustomHomePageHelper> kvo_helper(
- [[CustomHomePageHelper alloc] init]);
- [model_ addObserver:kvo_helper
- forKeyPath:@"customHomePages"
- options:0L
- context:NULL];
- EXPECT_FALSE(kvo_helper.get()->sawNotification_);
- EXPECT_EQ([model_ countOfCustomHomePages], 0U);
-
- std::vector<GURL> urls;
- urls.push_back(GURL("http://www.google.com"));
- SessionStartupPref pref;
- pref.urls = urls;
- SessionStartupPref::SetStartupPref(helper_.profile(), pref);
-
- [model_ reloadURLs];
-
- EXPECT_TRUE(kvo_helper.get()->sawNotification_);
- EXPECT_EQ([model_ countOfCustomHomePages], 1U);
- EXPECT_NSEQ(@"http://www.google.com/",
- EntryURL([model_ objectInCustomHomePagesAtIndex:0]));
-
- [model_ removeObserver:kvo_helper.get() forKeyPath:@"customHomePages"];
-}
-
-} // namespace

Powered by Google App Engine
This is Rietveld 408576698