1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
// Copyright (c) 2009 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 "base/scoped_nsobject.h"
#import "chrome/browser/cocoa/bookmark_editor_controller.h"
#include "chrome/browser/cocoa/browser_test_helper.h"
#import "chrome/browser/cocoa/cocoa_test_helper.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/platform_test.h"
class BookmarkEditorControllerTest : public PlatformTest {
public:
CocoaTestHelper cocoa_helper_; // Inits Cocoa, creates window, etc...
BrowserTestHelper helper_;
scoped_nsobject<BookmarkEditorController> bar_;
};
TEST_F(BookmarkEditorControllerTest, NoNodeNoTree) {
BookmarkModel* model = helper_.profile()->GetBookmarkModel();
const BookmarkNode* parent = model->GetBookmarkBarNode();
const BookmarkNode* node = NULL;
scoped_nsobject<BookmarkEditorController>
controller([[BookmarkEditorController alloc]
initWithParentWindow:cocoa_helper_.window()
profile:helper_.profile()
parent:parent
node:node
configuration:BookmarkEditor::NO_TREE
handler:nil]);
EXPECT_NE((NSWindow*)nil, [controller window]); // Forces a nib load
EXPECT_EQ(@"", [controller displayName]);
EXPECT_EQ(@"", [controller displayURL]);
}
TEST_F(BookmarkEditorControllerTest, YesNodeShowTree) {
BookmarkModel* model = helper_.profile()->GetBookmarkModel();
const BookmarkNode* parent = model->GetBookmarkBarNode();
const char* url_name = "http://www.zim-bop-a-dee.com/";
const BookmarkNode* node = model->AddURL(parent, 0, L"ooh title",
GURL(url_name));
scoped_nsobject<BookmarkEditorController>
controller([[BookmarkEditorController alloc]
initWithParentWindow:cocoa_helper_.window()
profile:helper_.profile()
parent:parent
node:node
configuration:BookmarkEditor::SHOW_TREE
handler:nil]);
EXPECT_NE((NSWindow*)nil, [controller window]); // Forces a nib load
EXPECT_TRUE([@"ooh title" isEqual:[controller displayName]]);
EXPECT_TRUE([[NSString stringWithCString:url_name
encoding:NSUTF8StringEncoding]
isEqual:[controller displayURL]]);
}
TEST_F(BookmarkEditorControllerTest, UserEditsStuff) {
BookmarkModel* model = helper_.profile()->GetBookmarkModel();
const BookmarkNode* parent = model->GetBookmarkBarNode();
const char* url_name = "http://www.zim-bop-a-dee.com/";
const BookmarkNode* node = model->AddURL(parent, 0, L"ooh title",
GURL(url_name));
scoped_nsobject<BookmarkEditorController>
controller([[BookmarkEditorController alloc]
initWithParentWindow:cocoa_helper_.window()
profile:helper_.profile()
parent:parent
node:node
configuration:BookmarkEditor::NO_TREE
handler:nil]);
EXPECT_NE((NSWindow*)nil, [controller window]); // Forces a nib load
// No change.
[controller ok:nil];
const BookmarkNode* child = parent->GetChild(0);
EXPECT_EQ(child->GetTitle(), L"ooh title");
EXPECT_EQ(child->GetURL(), GURL(url_name));
// Change just the title.
[controller setDisplayName:@"whamma jamma bamma"];
[controller ok:nil];
child = parent->GetChild(0);
EXPECT_EQ(child->GetTitle(), L"whamma jamma bamma");
EXPECT_EQ(child->GetURL(), GURL(url_name));
// Change just the URL
EXPECT_TRUE([controller okButtonEnabled]);
[controller setDisplayURL:@"http://yellow-sneakers.com/"];
EXPECT_TRUE([controller okButtonEnabled]);
[controller ok:nil];
child = parent->GetChild(0);
EXPECT_EQ(child->GetTitle(), L"whamma jamma bamma");
EXPECT_EQ(child->GetURL(), GURL("http://yellow-sneakers.com/"));
// Give it a URL which needs fixen up to be valid
// (e.g. http:// prefix added)
[controller setDisplayURL:@"x"];
[controller ok:nil];
child = parent->GetChild(0);
EXPECT_TRUE(child->GetURL().is_valid());
// Confirm OK button enabled/disabled as appropriate.
EXPECT_TRUE([controller okButtonEnabled]);
[controller setDisplayURL:@""];
EXPECT_FALSE([controller okButtonEnabled]);
[controller setDisplayURL:@"http://www.cnn.com"];
EXPECT_TRUE([controller okButtonEnabled]);
}
|