summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/cookies_window_controller_unittest.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/cocoa/cookies_window_controller_unittest.mm')
-rw-r--r--chrome/browser/cocoa/cookies_window_controller_unittest.mm687
1 files changed, 0 insertions, 687 deletions
diff --git a/chrome/browser/cocoa/cookies_window_controller_unittest.mm b/chrome/browser/cocoa/cookies_window_controller_unittest.mm
deleted file mode 100644
index 7b63243..0000000
--- a/chrome/browser/cocoa/cookies_window_controller_unittest.mm
+++ /dev/null
@@ -1,687 +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.
-
-#import <Cocoa/Cocoa.h>
-
-#include "app/l10n_util_mac.h"
-#include "app/tree_model.h"
-#import "base/scoped_nsobject.h"
-#include "base/scoped_ptr.h"
-#include "base/utf_string_conversions.h"
-#include "chrome/browser/cocoa/browser_test_helper.h"
-#include "chrome/browser/browsing_data_remover.h"
-#include "chrome/browser/cocoa/clear_browsing_data_controller.h"
-#import "chrome/browser/cocoa/cookies_window_controller.h"
-#include "chrome/browser/cocoa/cocoa_test_helper.h"
-#include "chrome/browser/mock_browsing_data_database_helper.h"
-#include "chrome/browser/mock_browsing_data_local_storage_helper.h"
-#include "chrome/browser/mock_browsing_data_appcache_helper.h"
-#include "chrome/browser/cookies_tree_model.h"
-#include "chrome/browser/profile.h"
-#include "chrome/common/net/url_request_context_getter.h"
-#include "chrome/test/testing_profile.h"
-#include "googleurl/src/gurl.h"
-#include "grit/generated_resources.h"
-#include "net/url_request/url_request_context.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#import "testing/gtest_mac.h"
-#include "testing/platform_test.h"
-#import "third_party/ocmock/OCMock/OCMock.h"
-
-// Used to test FindCocoaNode. This only sets the title and node, without
-// initializing any other members.
-@interface FakeCocoaCookieTreeNode : CocoaCookieTreeNode {
- TreeModelNode* testNode_;
-}
-- (id)initWithTreeNode:(TreeModelNode*)node;
-@end
-@implementation FakeCocoaCookieTreeNode
-- (id)initWithTreeNode:(TreeModelNode*)node {
- if ((self = [super init])) {
- testNode_ = node;
- children_.reset([[NSMutableArray alloc] init]);
- }
- return self;
-}
-- (TreeModelNode*)treeNode {
- return testNode_;
-}
-@end
-
-namespace {
-
-class CookiesWindowControllerTest : public CocoaTest {
- public:
-
- virtual void SetUp() {
- CocoaTest::SetUp();
- TestingProfile* profile = browser_helper_.profile();
- profile->CreateRequestContext();
- database_helper_ = new MockBrowsingDataDatabaseHelper(profile);
- local_storage_helper_ = new MockBrowsingDataLocalStorageHelper(profile);
- appcache_helper_ = new MockBrowsingDataAppCacheHelper(profile);
- controller_.reset(
- [[CookiesWindowController alloc] initWithProfile:profile
- databaseHelper:database_helper_
- storageHelper:local_storage_helper_
- appcacheHelper:appcache_helper_]
- );
- }
-
- virtual void TearDown() {
- CocoaTest::TearDown();
- }
-
- CocoaCookieTreeNode* CocoaNodeFromTreeNode(TreeModelNode* node) {
- return [controller_ modelObserver]->CocoaNodeFromTreeNode(node);
- }
-
- CocoaCookieTreeNode* FindCocoaNode(TreeModelNode* node,
- CocoaCookieTreeNode* start) {
- return [controller_ modelObserver]->FindCocoaNode(node, start);
- }
-
- protected:
- BrowserTestHelper browser_helper_;
- scoped_nsobject<CookiesWindowController> controller_;
- MockBrowsingDataDatabaseHelper* database_helper_;
- MockBrowsingDataLocalStorageHelper* local_storage_helper_;
- MockBrowsingDataAppCacheHelper* appcache_helper_;
-};
-
-TEST_F(CookiesWindowControllerTest, Construction) {
- std::vector<SkBitmap> skia_icons;
- [controller_ treeModel]->GetIcons(&skia_icons);
-
- EXPECT_EQ([[controller_ icons] count], skia_icons.size() + 1U);
-}
-
-TEST_F(CookiesWindowControllerTest, FindCocoaNodeRoot) {
- scoped_ptr< TreeNodeWithValue<int> > search(new TreeNodeWithValue<int>(42));
- scoped_nsobject<FakeCocoaCookieTreeNode> node(
- [[FakeCocoaCookieTreeNode alloc] initWithTreeNode:search.get()]);
- EXPECT_EQ(node.get(), FindCocoaNode(search.get(), node.get()));
-}
-
-TEST_F(CookiesWindowControllerTest, FindCocoaNodeImmediateChild) {
- scoped_ptr< TreeNodeWithValue<int> > parent(new TreeNodeWithValue<int>(100));
- scoped_ptr< TreeNodeWithValue<int> > child1(new TreeNodeWithValue<int>(10));
- scoped_ptr< TreeNodeWithValue<int> > child2(new TreeNodeWithValue<int>(20));
- scoped_nsobject<FakeCocoaCookieTreeNode> cocoaParent(
- [[FakeCocoaCookieTreeNode alloc] initWithTreeNode:parent.get()]);
- scoped_nsobject<FakeCocoaCookieTreeNode> cocoaChild1(
- [[FakeCocoaCookieTreeNode alloc] initWithTreeNode:child1.get()]);
- scoped_nsobject<FakeCocoaCookieTreeNode> cocoaChild2(
- [[FakeCocoaCookieTreeNode alloc] initWithTreeNode:child2.get()]);
- [[cocoaParent mutableChildren] addObject:cocoaChild1.get()];
- [[cocoaParent mutableChildren] addObject:cocoaChild2.get()];
-
- EXPECT_EQ(cocoaChild2.get(), FindCocoaNode(child2.get(), cocoaParent.get()));
-}
-
-TEST_F(CookiesWindowControllerTest, FindCocoaNodeRecursive) {
- scoped_ptr< TreeNodeWithValue<int> > parent(new TreeNodeWithValue<int>(100));
- scoped_ptr< TreeNodeWithValue<int> > child1(new TreeNodeWithValue<int>(10));
- scoped_ptr< TreeNodeWithValue<int> > child2(new TreeNodeWithValue<int>(20));
- scoped_nsobject<FakeCocoaCookieTreeNode> cocoaParent(
- [[FakeCocoaCookieTreeNode alloc] initWithTreeNode:parent.get()]);
- scoped_nsobject<FakeCocoaCookieTreeNode> cocoaChild1(
- [[FakeCocoaCookieTreeNode alloc] initWithTreeNode:child1.get()]);
- scoped_nsobject<FakeCocoaCookieTreeNode> cocoaChild2(
- [[FakeCocoaCookieTreeNode alloc] initWithTreeNode:child2.get()]);
- [[cocoaParent mutableChildren] addObject:cocoaChild1.get()];
- [[cocoaChild1 mutableChildren] addObject:cocoaChild2.get()];
-
- EXPECT_EQ(cocoaChild2.get(), FindCocoaNode(child2.get(), cocoaParent.get()));
-}
-
-TEST_F(CookiesWindowControllerTest, CocoaNodeFromTreeNodeCookie) {
- net::CookieMonster* cm = browser_helper_.profile()->GetCookieMonster();
- cm->SetCookie(GURL("http://foo.com"), "A=B");
- CookiesTreeModel model(cm, database_helper_, local_storage_helper_, nil, nil);
-
- // Root --> foo.com --> Cookies --> A. Create node for 'A'.
- TreeModelNode* node = model.GetRoot()->GetChild(0)->GetChild(0)->GetChild(0);
- CocoaCookieTreeNode* cookie = CocoaNodeFromTreeNode(node);
-
- CocoaCookieDetails* details = [cookie details];
- EXPECT_NSEQ(@"B", [details content]);
- EXPECT_NSEQ(l10n_util::GetNSString(IDS_COOKIES_COOKIE_EXPIRES_SESSION),
- [details expires]);
- EXPECT_NSEQ(l10n_util::GetNSString(IDS_COOKIES_COOKIE_SENDFOR_ANY),
- [details sendFor]);
- EXPECT_NSEQ(@"A", [cookie title]);
- EXPECT_NSEQ(@"A", [details name]);
- EXPECT_NSEQ(@"/", [details path]);
- EXPECT_EQ(0U, [[cookie children] count]);
- EXPECT_TRUE([details created]);
- EXPECT_TRUE([cookie isLeaf]);
- EXPECT_EQ(node, [cookie treeNode]);
-}
-
-TEST_F(CookiesWindowControllerTest, CocoaNodeFromTreeNodeRecursive) {
- net::CookieMonster* cm = browser_helper_.profile()->GetCookieMonster();
- cm->SetCookie(GURL("http://foo.com"), "A=B");
- CookiesTreeModel model(cm, database_helper_, local_storage_helper_, nil, nil);
-
- // Root --> foo.com --> Cookies --> A. Create node for 'foo.com'.
- CookieTreeNode* node = model.GetRoot()->GetChild(0);
- CocoaCookieTreeNode* domain = CocoaNodeFromTreeNode(node);
- CocoaCookieTreeNode* cookies = [[domain children] objectAtIndex:0];
- CocoaCookieTreeNode* cookie = [[cookies children] objectAtIndex:0];
-
- // Test domain-level node.
- EXPECT_NSEQ(@"foo.com", [domain title]);
-
- EXPECT_FALSE([domain isLeaf]);
- EXPECT_EQ(1U, [[domain children] count]);
- EXPECT_EQ(node, [domain treeNode]);
-
- // Test "Cookies" folder node.
- EXPECT_NSEQ(l10n_util::GetNSString(IDS_COOKIES_COOKIES), [cookies title]);
- EXPECT_FALSE([cookies isLeaf]);
- EXPECT_EQ(1U, [[cookies children] count]);
- EXPECT_EQ(node->GetChild(0), [cookies treeNode]);
-
- // Test cookie node. This is the same as CocoaNodeFromTreeNodeCookie.
- CocoaCookieDetails* details = [cookie details];
- EXPECT_NSEQ(@"B", [details content]);
- EXPECT_NSEQ(l10n_util::GetNSString(IDS_COOKIES_COOKIE_EXPIRES_SESSION),
- [details expires]);
- EXPECT_NSEQ(l10n_util::GetNSString(IDS_COOKIES_COOKIE_SENDFOR_ANY),
- [details sendFor]);
- EXPECT_NSEQ(@"A", [cookie title]);
- EXPECT_NSEQ(@"A", [details name]);
- EXPECT_NSEQ(@"/", [details path]);
- EXPECT_NSEQ(@"foo.com", [details domain]);
- EXPECT_EQ(0U, [[cookie children] count]);
- EXPECT_TRUE([details created]);
- EXPECT_TRUE([cookie isLeaf]);
- EXPECT_EQ(node->GetChild(0)->GetChild(0), [cookie treeNode]);
-}
-
-TEST_F(CookiesWindowControllerTest, TreeNodesAdded) {
- const GURL url = GURL("http://foo.com");
- TestingProfile* profile = browser_helper_.profile();
- net::CookieMonster* cm = profile->GetCookieMonster();
- cm->SetCookie(url, "A=B");
-
- controller_.reset(
- [[CookiesWindowController alloc] initWithProfile:profile
- databaseHelper:database_helper_
- storageHelper:local_storage_helper_
- appcacheHelper:appcache_helper_]);
-
- // Root --> foo.com --> Cookies.
- NSMutableArray* cocoa_children =
- [[[[[[controller_ cocoaTreeModel] children] objectAtIndex:0]
- children] objectAtIndex:0] mutableChildren];
- EXPECT_EQ(1U, [cocoa_children count]);
-
- // Create some cookies.
- cm->SetCookie(url, "C=D");
- cm->SetCookie(url, "E=F");
-
- net::CookieMonster::CookieList list = cm->GetAllCookies();
- CookiesTreeModel* model = [controller_ treeModel];
- // Root --> foo.com --> Cookies.
- CookieTreeNode* parent = model->GetRoot()->GetChild(0)->GetChild(0);
-
- ASSERT_EQ(3U, list.size());
-
- // Add the cookie nodes.
- CookieTreeCookieNode* cnode = new CookieTreeCookieNode(&list[1]);
- parent->Add(1, cnode); // |parent| takes ownership.
- cnode = new CookieTreeCookieNode(&list[2]);
- parent->Add(2, cnode);
-
- // Manually notify the observer.
- [controller_ modelObserver]->TreeNodesAdded(model, parent, 1, 2);
-
- // Check that we have created 2 more Cocoa nodes.
- EXPECT_EQ(3U, [cocoa_children count]);
-}
-
-TEST_F(CookiesWindowControllerTest, TreeNodesRemoved) {
- const GURL url = GURL("http://foo.com");
- TestingProfile* profile = browser_helper_.profile();
- net::CookieMonster* cm = profile->GetCookieMonster();
- cm->SetCookie(url, "A=B");
- cm->SetCookie(url, "C=D");
- cm->SetCookie(url, "E=F");
-
- controller_.reset(
- [[CookiesWindowController alloc] initWithProfile:profile
- databaseHelper:database_helper_
- storageHelper:local_storage_helper_
- appcacheHelper:appcache_helper_]);
-
- // Root --> foo.com --> Cookies.
- NSMutableArray* cocoa_children =
- [[[[[[controller_ cocoaTreeModel] children] objectAtIndex:0]
- children] objectAtIndex:0] mutableChildren];
- EXPECT_EQ(3U, [cocoa_children count]);
-
- CookiesTreeModel* model = [controller_ treeModel];
- // Root --> foo.com --> Cookies.
- CookieTreeNode* parent = model->GetRoot()->GetChild(0)->GetChild(0);
-
- // Pretend to remove the nodes.
- [controller_ modelObserver]->TreeNodesRemoved(model, parent, 1, 2);
-
- EXPECT_EQ(1U, [cocoa_children count]);
-
- NSString* title = [[[cocoa_children objectAtIndex:0] details] name];
- EXPECT_NSEQ(@"A", title);
-}
-
-TEST_F(CookiesWindowControllerTest, TreeNodeChanged) {
- const GURL url = GURL("http://foo.com");
- TestingProfile* profile = browser_helper_.profile();
- net::CookieMonster* cm = profile->GetCookieMonster();
- cm->SetCookie(url, "A=B");
-
- controller_.reset(
- [[CookiesWindowController alloc] initWithProfile:profile
- databaseHelper:database_helper_
- storageHelper:local_storage_helper_
- appcacheHelper:appcache_helper_]);
-
- CookiesTreeModel* model = [controller_ treeModel];
- // Root --> foo.com --> Cookies.
- CookieTreeNode* node = model->GetRoot()->GetChild(0)->GetChild(0);
-
- // Root --> foo.com --> Cookies.
- CocoaCookieTreeNode* cocoa_node =
- [[[[[controller_ cocoaTreeModel] children] objectAtIndex:0]
- children] objectAtIndex:0];
-
- EXPECT_NSEQ(l10n_util::GetNSString(IDS_COOKIES_COOKIES),
- [cocoa_node title]);
-
- // Fake update the cookie folder's title. This would never happen in reality,
- // but it tests the code path that ultimately calls CocoaNodeFromTreeNode,
- // which is tested elsewhere.
- node->SetTitle(ASCIIToUTF16("Silly Change"));
- [controller_ modelObserver]->TreeNodeChanged(model, node);
-
- EXPECT_NSEQ(@"Silly Change", [cocoa_node title]);
-}
-
-TEST_F(CookiesWindowControllerTest, DeleteCookie) {
- const GURL url = GURL("http://foo.com");
- TestingProfile* profile = browser_helper_.profile();
- net::CookieMonster* cm = profile->GetCookieMonster();
- cm->SetCookie(url, "A=B");
- cm->SetCookie(url, "C=D");
- cm->SetCookie(GURL("http://google.com"), "E=F");
-
- // This will clean itself up when we call |-closeSheet:|. If we reset the
- // scoper, we'd get a double-free.
- CookiesWindowController* controller =
- [[CookiesWindowController alloc] initWithProfile:profile
- databaseHelper:database_helper_
- storageHelper:local_storage_helper_
- appcacheHelper:appcache_helper_];
- [controller attachSheetTo:test_window()];
- NSTreeController* treeController = [controller treeController];
-
- // Select cookie A.
- NSUInteger pathA[3] = {0, 0, 0};
- NSIndexPath* indexPath = [NSIndexPath indexPathWithIndexes:pathA length:3];
- [treeController setSelectionIndexPath:indexPath];
-
- // Press the "Delete" button.
- [controller deleteCookie:nil];
-
- // Root --> foo.com --> Cookies.
- NSArray* cookies = [[[[[[controller cocoaTreeModel] children]
- objectAtIndex:0] children] objectAtIndex:0] children];
- EXPECT_EQ(1U, [cookies count]);
- EXPECT_NSEQ(@"C", [[cookies lastObject] title]);
- EXPECT_NSEQ(indexPath, [treeController selectionIndexPath]);
-
- // Select cookie E.
- NSUInteger pathE[3] = {1, 0, 0};
- indexPath = [NSIndexPath indexPathWithIndexes:pathE length:3];
- [treeController setSelectionIndexPath:indexPath];
-
- // Perform delete.
- [controller deleteCookie:nil];
-
- // Make sure that both the domain level node and the Cookies folder node got
- // deleted because there was only one leaf node.
- EXPECT_EQ(1U, [[[controller cocoaTreeModel] children] count]);
-
- // Select cookie C.
- NSUInteger pathC[3] = {0, 0, 0};
- indexPath = [NSIndexPath indexPathWithIndexes:pathC length:3];
- [treeController setSelectionIndexPath:indexPath];
-
- // Perform delete.
- [controller deleteCookie:nil];
-
- // Make sure the world didn't explode and that there's nothing in the tree.
- EXPECT_EQ(0U, [[[controller cocoaTreeModel] children] count]);
-
- [controller closeSheet:nil];
-}
-
-TEST_F(CookiesWindowControllerTest, DidExpandItem) {
- const GURL url = GURL("http://foo.com");
- TestingProfile* profile = browser_helper_.profile();
- net::CookieMonster* cm = profile->GetCookieMonster();
- cm->SetCookie(url, "A=B");
- cm->SetCookie(url, "C=D");
-
- controller_.reset(
- [[CookiesWindowController alloc] initWithProfile:profile
- databaseHelper:database_helper_
- storageHelper:local_storage_helper_
- appcacheHelper:appcache_helper_]);
-
- // Root --> foo.com.
- CocoaCookieTreeNode* foo =
- [[[controller_ cocoaTreeModel] children] objectAtIndex:0];
-
- // Create the objects we are going to be testing with.
- id outlineView = [OCMockObject mockForClass:[NSOutlineView class]];
- id treeNode = [OCMockObject mockForClass:[NSTreeNode class]];
- NSTreeNode* childTreeNode =
- [NSTreeNode treeNodeWithRepresentedObject:[[foo children] lastObject]];
- NSArray* fakeChildren = [NSArray arrayWithObject:childTreeNode];
-
- // Set up the mock object.
- [[[treeNode stub] andReturn:foo] representedObject];
- [[[treeNode stub] andReturn:fakeChildren] childNodes];
-
- // Create a fake "ItemDidExpand" notification.
- NSDictionary* userInfo = [NSDictionary dictionaryWithObject:treeNode
- forKey:@"NSObject"];
- NSNotification* notif =
- [NSNotification notificationWithName:@"ItemDidExpandNotification"
- object:outlineView
- userInfo:userInfo];
-
- // Make sure we work correctly.
- [[outlineView expect] expandItem:childTreeNode];
- [controller_ outlineViewItemDidExpand:notif];
- [outlineView verify];
-}
-
-TEST_F(CookiesWindowControllerTest, ClearBrowsingData) {
- const GURL url = GURL("http://foo.com");
- TestingProfile* profile = browser_helper_.profile();
- net::CookieMonster* cm = profile->GetCookieMonster();
- cm->SetCookie(url, "A=B");
- cm->SetCookie(url, "C=D");
- cm->SetCookie(url, "E=F");
-
- id mock = [OCMockObject partialMockForObject:controller_.get()];
- [[mock expect] loadTreeModelFromProfile];
-
- NSNumber* mask =
- [NSNumber numberWithInt:BrowsingDataRemover::REMOVE_COOKIES];
- NSDictionary* userInfo =
- [NSDictionary dictionaryWithObject:mask
- forKey:kClearBrowsingDataControllerRemoveMask];
- NSNotification* notif =
- [NSNotification notificationWithName:kClearBrowsingDataControllerDidDelete
- object:nil
- userInfo:userInfo];
- [controller_ clearBrowsingDataNotification:notif];
-
- [mock verify];
-}
-
-// This test has been flaky under Valgrind and turns the bot red since r38504.
-// Under Mac Tests 10.5, it occasionally reports:
-// malloc: *** error for object 0x31e0468: Non-aligned pointer being freed
-// *** set a breakpoint in malloc_error_break to debug
-// Attempts to reproduce locally were not successful. This code is likely
-// changing in the future, so it's marked flaky for now. http://crbug.com/35327
-TEST_F(CookiesWindowControllerTest, FLAKY_RemoveButtonEnabled) {
- const GURL url = GURL("http://foo.com");
- TestingProfile* profile = browser_helper_.profile();
- net::CookieMonster* cm = profile->GetCookieMonster();
- cm->SetCookie(url, "A=B");
- cm->SetCookie(url, "C=D");
-
- // This will clean itself up when we call |-closeSheet:|. If we reset the
- // scoper, we'd get a double-free.
- database_helper_ = new MockBrowsingDataDatabaseHelper(profile);
- local_storage_helper_ = new MockBrowsingDataLocalStorageHelper(profile);
- local_storage_helper_->AddLocalStorageSamples();
- CookiesWindowController* controller =
- [[CookiesWindowController alloc] initWithProfile:profile
- databaseHelper:database_helper_
- storageHelper:local_storage_helper_
- appcacheHelper:appcache_helper_];
- local_storage_helper_->Notify();
- [controller attachSheetTo:test_window()];
-
- // Nothing should be selected right now.
- EXPECT_FALSE([controller removeButtonEnabled]);
-
- {
- // Pretend to select cookie A.
- NSUInteger path[3] = {0, 0, 0};
- NSIndexPath* indexPath = [NSIndexPath indexPathWithIndexes:path length:3];
- [[controller treeController] setSelectionIndexPath:indexPath];
- [controller outlineViewSelectionDidChange:nil];
- EXPECT_TRUE([controller removeButtonEnabled]);
- }
-
- {
- // Pretend to select cookie C.
- NSUInteger path[3] = {0, 0, 1};
- NSIndexPath* indexPath = [NSIndexPath indexPathWithIndexes:path length:3];
- [[controller treeController] setSelectionIndexPath:indexPath];
- [controller outlineViewSelectionDidChange:nil];
- EXPECT_TRUE([controller removeButtonEnabled]);
- }
-
- {
- // Select a local storage node.
- NSUInteger path[3] = {2, 0, 0};
- NSIndexPath* indexPath = [NSIndexPath indexPathWithIndexes:path length:3];
- [[controller treeController] setSelectionIndexPath:indexPath];
- [controller outlineViewSelectionDidChange:nil];
- EXPECT_TRUE([controller removeButtonEnabled]);
- }
-
- {
- // Pretend to select something that isn't there!
- NSUInteger path[3] = {0, 0, 2};
- NSIndexPath* indexPath = [NSIndexPath indexPathWithIndexes:path length:3];
- [[controller treeController] setSelectionIndexPath:indexPath];
- [controller outlineViewSelectionDidChange:nil];
- EXPECT_FALSE([controller removeButtonEnabled]);
- }
-
- {
- // Try selecting something that doesn't exist again.
- NSUInteger path[3] = {7, 1, 4};
- NSIndexPath* indexPath = [NSIndexPath indexPathWithIndexes:path length:3];
- [[controller treeController] setSelectionIndexPath:indexPath];
- [controller outlineViewSelectionDidChange:nil];
- EXPECT_FALSE([controller removeButtonEnabled]);
- }
-
- [controller closeSheet:nil];
-}
-
-TEST_F(CookiesWindowControllerTest, UpdateFilter) {
- const GURL url = GURL("http://foo.com");
- TestingProfile* profile = browser_helper_.profile();
- net::CookieMonster* cm = profile->GetCookieMonster();
- cm->SetCookie(GURL("http://a.com"), "A=B");
- cm->SetCookie(GURL("http://aa.com"), "C=D");
- cm->SetCookie(GURL("http://b.com"), "E=F");
- cm->SetCookie(GURL("http://d.com"), "G=H");
- cm->SetCookie(GURL("http://dd.com"), "I=J");
-
- controller_.reset(
- [[CookiesWindowController alloc] initWithProfile:profile
- databaseHelper:database_helper_
- storageHelper:local_storage_helper_
- appcacheHelper:appcache_helper_]);
-
- // Make sure we registered all five cookies.
- EXPECT_EQ(5U, [[[controller_ cocoaTreeModel] children] count]);
-
- NSSearchField* field =
- [[NSSearchField alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];
-
- // Make sure we still have five cookies.
- [field setStringValue:@""];
- [controller_ updateFilter:field];
- EXPECT_EQ(5U, [[[controller_ cocoaTreeModel] children] count]);
-
- // Search for "a".
- [field setStringValue:@"a"];
- [controller_ updateFilter:field];
- EXPECT_EQ(2U, [[[controller_ cocoaTreeModel] children] count]);
-
- // Search for "b".
- [field setStringValue:@"b"];
- [controller_ updateFilter:field];
- EXPECT_EQ(1U, [[[controller_ cocoaTreeModel] children] count]);
-
- // Search for "d".
- [field setStringValue:@"d"];
- [controller_ updateFilter:field];
- EXPECT_EQ(2U, [[[controller_ cocoaTreeModel] children] count]);
-
- // Search for "e".
- [field setStringValue:@"e"];
- [controller_ updateFilter:field];
- EXPECT_EQ(0U, [[[controller_ cocoaTreeModel] children] count]);
-
- // Search for "aa".
- [field setStringValue:@"aa"];
- [controller_ updateFilter:field];
- EXPECT_EQ(1U, [[[controller_ cocoaTreeModel] children] count]);
-}
-
-TEST_F(CookiesWindowControllerTest, CreateDatabaseStorageNodes) {
- TestingProfile* profile = browser_helper_.profile();
- database_helper_ = new MockBrowsingDataDatabaseHelper(profile);
- local_storage_helper_ = new MockBrowsingDataLocalStorageHelper(profile);
- database_helper_->AddDatabaseSamples();
- controller_.reset(
- [[CookiesWindowController alloc] initWithProfile:profile
- databaseHelper:database_helper_
- storageHelper:local_storage_helper_
- appcacheHelper:appcache_helper_]);
- database_helper_->Notify();
-
- ASSERT_EQ(2U, [[[controller_ cocoaTreeModel] children] count]);
-
- // Root --> gdbhost1.
- CocoaCookieTreeNode* node =
- [[[controller_ cocoaTreeModel] children] objectAtIndex:0];
- EXPECT_NSEQ(@"gdbhost1", [node title]);
- EXPECT_EQ(kCocoaCookieDetailsTypeFolder, [node nodeType]);
- EXPECT_EQ(1U, [[node children] count]);
-
- // host1 --> Web Databases.
- node = [[node children] lastObject];
- EXPECT_NSEQ(l10n_util::GetNSString(IDS_COOKIES_WEB_DATABASES), [node title]);
- EXPECT_EQ(kCocoaCookieDetailsTypeFolder, [node nodeType]);
- EXPECT_EQ(1U, [[node children] count]);
-
- // Database Storage --> db1.
- node = [[node children] lastObject];
- EXPECT_NSEQ(@"db1", [node title]);
- EXPECT_EQ(kCocoaCookieDetailsTypeTreeDatabase, [node nodeType]);
- CocoaCookieDetails* details = [node details];
- EXPECT_NSEQ(@"description 1", [details databaseDescription]);
- EXPECT_TRUE([details lastModified]);
- EXPECT_TRUE([details fileSize]);
-
- // Root --> gdbhost2.
- node =
- [[[controller_ cocoaTreeModel] children] objectAtIndex:1];
- EXPECT_NSEQ(@"gdbhost2", [node title]);
- EXPECT_EQ(kCocoaCookieDetailsTypeFolder, [node nodeType]);
- EXPECT_EQ(1U, [[node children] count]);
-
- // host1 --> Web Databases.
- node = [[node children] lastObject];
- EXPECT_NSEQ(l10n_util::GetNSString(IDS_COOKIES_WEB_DATABASES), [node title]);
- EXPECT_EQ(kCocoaCookieDetailsTypeFolder, [node nodeType]);
- EXPECT_EQ(1U, [[node children] count]);
-
- // Database Storage --> db2.
- node = [[node children] lastObject];
- EXPECT_NSEQ(@"db2", [node title]);
- EXPECT_EQ(kCocoaCookieDetailsTypeTreeDatabase, [node nodeType]);
- details = [node details];
- EXPECT_NSEQ(@"description 2", [details databaseDescription]);
- EXPECT_TRUE([details lastModified]);
- EXPECT_TRUE([details fileSize]);
-}
-
-TEST_F(CookiesWindowControllerTest, CreateLocalStorageNodes) {
- TestingProfile* profile = browser_helper_.profile();
- net::CookieMonster* cm = profile->GetCookieMonster();
- cm->SetCookie(GURL("http://google.com"), "A=B");
- cm->SetCookie(GURL("http://dev.chromium.org"), "C=D");
- database_helper_ = new MockBrowsingDataDatabaseHelper(profile);
- local_storage_helper_ = new MockBrowsingDataLocalStorageHelper(profile);
- local_storage_helper_->AddLocalStorageSamples();
- controller_.reset(
- [[CookiesWindowController alloc] initWithProfile:profile
- databaseHelper:database_helper_
- storageHelper:local_storage_helper_
- appcacheHelper:appcache_helper_]);
- local_storage_helper_->Notify();
-
- ASSERT_EQ(4U, [[[controller_ cocoaTreeModel] children] count]);
-
- // Root --> host1.
- CocoaCookieTreeNode* node =
- [[[controller_ cocoaTreeModel] children] objectAtIndex:2];
- EXPECT_NSEQ(@"host1", [node title]);
- EXPECT_EQ(kCocoaCookieDetailsTypeFolder, [node nodeType]);
- EXPECT_EQ(1U, [[node children] count]);
-
- // host1 --> Local Storage.
- node = [[node children] lastObject];
- EXPECT_NSEQ(l10n_util::GetNSString(IDS_COOKIES_LOCAL_STORAGE), [node title]);
- EXPECT_EQ(kCocoaCookieDetailsTypeFolder, [node nodeType]);
- EXPECT_EQ(1U, [[node children] count]);
-
- // Local Storage --> http://host1:1/.
- node = [[node children] lastObject];
- EXPECT_NSEQ(@"http://host1:1/", [node title]);
- EXPECT_EQ(kCocoaCookieDetailsTypeTreeLocalStorage, [node nodeType]);
- EXPECT_NSEQ(@"http://host1:1/", [[node details] domain]);
- EXPECT_TRUE([[node details] lastModified]);
- EXPECT_TRUE([[node details] fileSize]);
-
- // Root --> host2.
- node =
- [[[controller_ cocoaTreeModel] children] objectAtIndex:3];
- EXPECT_NSEQ(@"host2", [node title]);
- EXPECT_EQ(kCocoaCookieDetailsTypeFolder, [node nodeType]);
- EXPECT_EQ(1U, [[node children] count]);
-
- // host2 --> Local Storage.
- node = [[node children] lastObject];
- EXPECT_NSEQ(l10n_util::GetNSString(IDS_COOKIES_LOCAL_STORAGE), [node title]);
- EXPECT_EQ(kCocoaCookieDetailsTypeFolder, [node nodeType]);
- EXPECT_EQ(1U, [[node children] count]);
-
- // Local Storage --> http://host2:2/.
- node = [[node children] lastObject];
- EXPECT_NSEQ(@"http://host2:2/", [node title]);
- EXPECT_EQ(kCocoaCookieDetailsTypeTreeLocalStorage, [node nodeType]);
- EXPECT_NSEQ(@"http://host2:2/", [[node details] domain]);
- EXPECT_TRUE([[node details] lastModified]);
- EXPECT_TRUE([[node details] fileSize]);
-}
-
-} // namespace