OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/cancelable_callback.h" | 5 #include "base/cancelable_callback.h" |
6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
7 #include "base/location.h" | 7 #include "base/location.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 base::RunLoop().RunUntilIdle(); | 62 base::RunLoop().RunUntilIdle(); |
63 profile_.reset(NULL); | 63 profile_.reset(NULL); |
64 base::RunLoop().RunUntilIdle(); | 64 base::RunLoop().RunUntilIdle(); |
65 // Restore the original command line and undo the affects of SetUp(). | 65 // Restore the original command line and undo the affects of SetUp(). |
66 *base::CommandLine::ForCurrentProcess() = saved_cmdline_; | 66 *base::CommandLine::ForCurrentProcess() = saved_cmdline_; |
67 } | 67 } |
68 | 68 |
69 // Wait for the task queue for the specified thread to empty. | 69 // Wait for the task queue for the specified thread to empty. |
70 void WaitOnThread(const BrowserThread::ID& thread) { | 70 void WaitOnThread(const BrowserThread::ID& thread) { |
71 BrowserThread::PostTaskAndReply( | 71 BrowserThread::PostTaskAndReply( |
72 thread, | 72 thread, FROM_HERE, base::Bind(&base::DoNothing), |
73 FROM_HERE, | 73 base::MessageLoop::current()->QuitWhenIdleClosure()); |
74 base::Bind(&base::DoNothing), | |
75 base::MessageLoop::current()->QuitClosure()); | |
76 base::MessageLoop::current()->Run(); | 74 base::MessageLoop::current()->Run(); |
77 } | 75 } |
78 | 76 |
79 // A wrapper function for CheckReadFilteredData, so that we don't need to | 77 // A wrapper function for CheckReadFilteredData, so that we don't need to |
80 // enter empty string values for parameters we don't care about. | 78 // enter empty string values for parameters we don't care about. |
81 void CheckReadData( | 79 void CheckReadData( |
82 ActivityLogDatabasePolicy* policy, | 80 ActivityLogDatabasePolicy* policy, |
83 const std::string& extension_id, | 81 const std::string& extension_id, |
84 int day, | 82 int day, |
85 const base::Callback<void(scoped_ptr<Action::ActionVector>)>& checker) { | 83 const base::Callback<void(scoped_ptr<Action::ActionVector>)>& checker) { |
86 CheckReadFilteredData( | 84 CheckReadFilteredData( |
87 policy, extension_id, Action::ACTION_ANY, "", "", "", day, checker); | 85 policy, extension_id, Action::ACTION_ANY, "", "", "", day, checker); |
88 } | 86 } |
89 | 87 |
90 // A helper function to call ReadFilteredData on a policy object and wait for | 88 // A helper function to call ReadFilteredData on a policy object and wait for |
91 // the results to be processed. | 89 // the results to be processed. |
92 void CheckReadFilteredData( | 90 void CheckReadFilteredData( |
93 ActivityLogDatabasePolicy* policy, | 91 ActivityLogDatabasePolicy* policy, |
94 const std::string& extension_id, | 92 const std::string& extension_id, |
95 const Action::ActionType type, | 93 const Action::ActionType type, |
96 const std::string& api_name, | 94 const std::string& api_name, |
97 const std::string& page_url, | 95 const std::string& page_url, |
98 const std::string& arg_url, | 96 const std::string& arg_url, |
99 int day, | 97 int day, |
100 const base::Callback<void(scoped_ptr<Action::ActionVector>)>& checker) { | 98 const base::Callback<void(scoped_ptr<Action::ActionVector>)>& checker) { |
101 // Submit a request to the policy to read back some data, and call the | 99 // Submit a request to the policy to read back some data, and call the |
102 // checker function when results are available. This will happen on the | 100 // checker function when results are available. This will happen on the |
103 // database thread. | 101 // database thread. |
104 policy->ReadFilteredData( | 102 policy->ReadFilteredData( |
105 extension_id, | 103 extension_id, type, api_name, page_url, arg_url, day, |
106 type, | 104 base::Bind(&CountingPolicyTest::CheckWrapper, checker, |
107 api_name, | 105 base::MessageLoop::current()->QuitWhenIdleClosure())); |
108 page_url, | |
109 arg_url, | |
110 day, | |
111 base::Bind(&CountingPolicyTest::CheckWrapper, | |
112 checker, | |
113 base::MessageLoop::current()->QuitClosure())); | |
114 | 106 |
115 // Set up a timeout for receiving results; if we haven't received anything | 107 // Set up a timeout for receiving results; if we haven't received anything |
116 // when the timeout triggers then assume that the test is broken. | 108 // when the timeout triggers then assume that the test is broken. |
117 base::CancelableClosure timeout( | 109 base::CancelableClosure timeout( |
118 base::Bind(&CountingPolicyTest::TimeoutCallback)); | 110 base::Bind(&CountingPolicyTest::TimeoutCallback)); |
119 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 111 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
120 FROM_HERE, timeout.callback(), TestTimeouts::action_timeout()); | 112 FROM_HERE, timeout.callback(), TestTimeouts::action_timeout()); |
121 | 113 |
122 // Wait for results; either the checker or the timeout callbacks should | 114 // Wait for results; either the checker or the timeout callbacks should |
123 // cause the main loop to exit. | 115 // cause the main loop to exit. |
(...skipping 1293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1417 | 1409 |
1418 action_ids.push_back(2); | 1410 action_ids.push_back(2); |
1419 CheckRemoveActions( | 1411 CheckRemoveActions( |
1420 policy, action_ids, base::Bind(&CountingPolicyTest::Action2Deleted)); | 1412 policy, action_ids, base::Bind(&CountingPolicyTest::Action2Deleted)); |
1421 action_ids.clear(); | 1413 action_ids.clear(); |
1422 | 1414 |
1423 policy->Close(); | 1415 policy->Close(); |
1424 } | 1416 } |
1425 | 1417 |
1426 } // namespace extensions | 1418 } // namespace extensions |
OLD | NEW |