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

Side by Side Diff: chrome/browser/google_apis/base_operations_unittest.cc

Issue 11418127: Pass calls to GetDocuments through the scheduler (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/message_loop.h" 6 #include "base/message_loop.h"
7 #include "base/values.h" 7 #include "base/values.h"
8 #include "chrome/browser/google_apis/base_operations.h" 8 #include "chrome/browser/google_apis/base_operations.h"
9 #include "chrome/browser/google_apis/operation_runner.h" 9 #include "chrome/browser/google_apis/operation_runner.h"
10 #include "chrome/browser/google_apis/test_util.h" 10 #include "chrome/browser/google_apis/test_util.h"
(...skipping 25 matching lines...) Expand all
36 protected: 36 protected:
37 // GetDataOperation overrides: 37 // GetDataOperation overrides:
38 virtual GURL GetURL() const OVERRIDE { 38 virtual GURL GetURL() const OVERRIDE {
39 // This method is never called because this test does not fetch json from 39 // This method is never called because this test does not fetch json from
40 // network. 40 // network.
41 NOTREACHED(); 41 NOTREACHED();
42 return GURL(); 42 return GURL();
43 } 43 }
44 }; 44 };
45 45
46 // Copies the results from GetDataCallback.
47 void CopyResultsFromGetDataCallback(GDataErrorCode* error_out,
48 scoped_ptr<base::Value>* value_out,
49 GDataErrorCode error_in,
50 scoped_ptr<base::Value> value_in) {
51 value_out->swap(value_in);
52 *error_out = error_in;
53 }
54
55 } // namespace 46 } // namespace
56 47
57 class BaseOperationsTest : public testing::Test { 48 class BaseOperationsTest : public testing::Test {
58 protected: 49 protected:
59 BaseOperationsTest() 50 BaseOperationsTest()
60 : ui_thread_(content::BrowserThread::UI, &message_loop_) { 51 : ui_thread_(content::BrowserThread::UI, &message_loop_) {
61 } 52 }
62 53
63 virtual void SetUp() OVERRIDE { 54 virtual void SetUp() OVERRIDE {
64 profile_.reset(new TestingProfile); 55 profile_.reset(new TestingProfile);
65 runner_.reset(new OperationRunner(profile_.get(), 56 runner_.reset(new OperationRunner(profile_.get(),
66 std::vector<std::string>() /* scopes */, 57 std::vector<std::string>() /* scopes */,
67 "" /* custom_user_agent*/)); 58 "" /* custom_user_agent*/));
68 runner_->Initialize(); 59 runner_->Initialize();
69 } 60 }
70 61
71 protected: 62 protected:
72 MessageLoopForUI message_loop_; 63 MessageLoopForUI message_loop_;
73 content::TestBrowserThread ui_thread_; 64 content::TestBrowserThread ui_thread_;
74 scoped_ptr<TestingProfile> profile_; 65 scoped_ptr<TestingProfile> profile_;
75 scoped_ptr<OperationRunner> runner_; 66 scoped_ptr<OperationRunner> runner_;
76 }; 67 };
77 68
78 TEST_F(BaseOperationsTest, GetDataOperation_ParseValidJson) { 69 TEST_F(BaseOperationsTest, GetDataOperation_ParseValidJson) {
79 scoped_ptr<base::Value> value; 70 scoped_ptr<base::Value> value;
80 GDataErrorCode error = GDATA_OTHER_ERROR; 71 GDataErrorCode error = GDATA_OTHER_ERROR;
81 JsonParseTestGetDataOperation* get_data = 72 JsonParseTestGetDataOperation* get_data =
82 new JsonParseTestGetDataOperation( 73 new JsonParseTestGetDataOperation(
83 runner_->operation_registry(), 74 runner_->operation_registry(),
84 base::Bind(&CopyResultsFromGetDataCallback, &error, &value)); 75 base::Bind(&test_util::CopyResultsFromGetDataCallback,
76 &error,
77 &value));
85 get_data->NotifyStart(); 78 get_data->NotifyStart();
86 79
87 const std::string valid_json_str = "{ \"test\": 123 }"; 80 const std::string valid_json_str = "{ \"test\": 123 }";
88 81
89 get_data->ParseResponse(HTTP_SUCCESS, valid_json_str); 82 get_data->ParseResponse(HTTP_SUCCESS, valid_json_str);
90 // Should wait for a blocking pool task, as the JSON parsing is done in the 83 // Should wait for a blocking pool task, as the JSON parsing is done in the
91 // blocking pool. 84 // blocking pool.
92 test_util::RunBlockingPoolTask(); 85 test_util::RunBlockingPoolTask();
93 86
94 EXPECT_EQ(HTTP_SUCCESS, error); 87 EXPECT_EQ(HTTP_SUCCESS, error);
95 ASSERT_TRUE(value.get()); 88 ASSERT_TRUE(value.get());
96 89
97 DictionaryValue* root_dict = NULL; 90 DictionaryValue* root_dict = NULL;
98 ASSERT_TRUE(value->GetAsDictionary(&root_dict)); 91 ASSERT_TRUE(value->GetAsDictionary(&root_dict));
99 92
100 int int_value = 0; 93 int int_value = 0;
101 ASSERT_TRUE(root_dict->GetInteger("test", &int_value)); 94 ASSERT_TRUE(root_dict->GetInteger("test", &int_value));
102 EXPECT_EQ(123, int_value); 95 EXPECT_EQ(123, int_value);
103 } 96 }
104 97
105 TEST_F(BaseOperationsTest, GetDataOperation_ParseInvalidJson) { 98 TEST_F(BaseOperationsTest, GetDataOperation_ParseInvalidJson) {
106 scoped_ptr<base::Value> value; 99 scoped_ptr<base::Value> value;
107 GDataErrorCode error = GDATA_OTHER_ERROR; 100 GDataErrorCode error = GDATA_OTHER_ERROR;
108 JsonParseTestGetDataOperation* get_data = 101 JsonParseTestGetDataOperation* get_data =
109 new JsonParseTestGetDataOperation( 102 new JsonParseTestGetDataOperation(
110 runner_->operation_registry(), 103 runner_->operation_registry(),
111 base::Bind(&CopyResultsFromGetDataCallback, &error, &value)); 104 base::Bind(&test_util::CopyResultsFromGetDataCallback,
105 &error,
106 &value));
112 get_data->NotifyStart(); 107 get_data->NotifyStart();
113 108
114 const std::string invalid_json_str = "$$$"; 109 const std::string invalid_json_str = "$$$";
115 110
116 get_data->ParseResponse(HTTP_SUCCESS, invalid_json_str); 111 get_data->ParseResponse(HTTP_SUCCESS, invalid_json_str);
117 test_util::RunBlockingPoolTask(); 112 test_util::RunBlockingPoolTask();
118 113
119 // The parsing should fail. 114 // The parsing should fail.
120 EXPECT_EQ(GDATA_PARSE_ERROR, error); 115 EXPECT_EQ(GDATA_PARSE_ERROR, error);
121 ASSERT_FALSE(value.get()); 116 ASSERT_FALSE(value.get());
122 } 117 }
123 118
124 } // namespace google_apis 119 } // namespace google_apis
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698