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

Unified Diff: chrome/browser/google_apis/test_util.h

Issue 96413002: Move c/b/google_apis to google_apis/drive. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/google_apis/task_util.cc ('k') | chrome/browser/google_apis/test_util.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/google_apis/test_util.h
diff --git a/chrome/browser/google_apis/test_util.h b/chrome/browser/google_apis/test_util.h
deleted file mode 100644
index 2976937c973e35060d68b7e6afb92d197906e0b9..0000000000000000000000000000000000000000
--- a/chrome/browser/google_apis/test_util.h
+++ /dev/null
@@ -1,299 +0,0 @@
-// Copyright (c) 2012 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.
-
-#ifndef CHROME_BROWSER_GOOGLE_APIS_TEST_UTIL_H_
-#define CHROME_BROWSER_GOOGLE_APIS_TEST_UTIL_H_
-
-#include <string>
-#include <utility>
-#include <vector>
-
-#include "base/bind.h"
-#include "base/callback.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/scoped_vector.h"
-#include "base/template_util.h"
-#include "chrome/browser/google_apis/base_requests.h"
-#include "chrome/browser/google_apis/gdata_errorcode.h"
-#include "chrome/browser/google_apis/task_util.h"
-
-class GURL;
-
-namespace base {
-class FilePath;
-class RunLoop;
-class Value;
-}
-
-namespace net {
-namespace test_server {
-class BasicHttpResponse;
-class HttpResponse;
-struct HttpRequest;
-}
-}
-
-namespace google_apis {
-namespace test_util {
-
-// Runs the closure, and then quits the |run_loop|.
-void RunAndQuit(base::RunLoop* run_loop, const base::Closure& closure);
-
-// Returns callback which runs the given |callback| and then quits |run_loop|.
-template<typename CallbackType>
-CallbackType CreateQuitCallback(base::RunLoop* run_loop,
- const CallbackType& callback) {
- return CreateComposedCallback(base::Bind(&RunAndQuit, run_loop), callback);
-}
-
-// Removes |prefix| from |input| and stores the result in |output|. Returns
-// true if the prefix is removed.
-bool RemovePrefix(const std::string& input,
- const std::string& prefix,
- std::string* output);
-
-// Returns the absolute path for a test file stored under
-// chrome/test/data.
-base::FilePath GetTestFilePath(const std::string& relative_path);
-
-// Returns the base URL for communicating with the local test server for
-// testing, running at the specified port number.
-GURL GetBaseUrlForTesting(int port);
-
-// Writes the |content| to the file at |file_path|. Returns true on success,
-// otherwise false.
-bool WriteStringToFile(const base::FilePath& file_path,
- const std::string& content);
-
-// Creates a |size| byte file. The file is filled with random bytes so that
-// the test assertions can identify correct portion/position of the file is
-// used.
-// Returns true on success with the created file's |path| and |data|, otherwise
-// false.
-bool CreateFileOfSpecifiedSize(const base::FilePath& temp_dir,
- size_t size,
- base::FilePath* path,
- std::string* data);
-
-// Loads a test JSON file as a base::Value, from a test file stored under
-// chrome/test/data.
-scoped_ptr<base::Value> LoadJSONFile(const std::string& relative_path);
-
-// Returns a HttpResponse created from the given file path.
-scoped_ptr<net::test_server::BasicHttpResponse> CreateHttpResponseFromFile(
- const base::FilePath& file_path);
-
-// Handles a request for downloading a file. Reads a file from the test
-// directory and returns the content. Also, copies the |request| to the memory
-// pointed by |out_request|.
-// |base_url| must be set to the server's base url.
-scoped_ptr<net::test_server::HttpResponse> HandleDownloadFileRequest(
- const GURL& base_url,
- net::test_server::HttpRequest* out_request,
- const net::test_server::HttpRequest& request);
-
-// Parses a value of Content-Range header, which looks like
-// "bytes <start_position>-<end_position>/<length>".
-// Returns true on success.
-bool ParseContentRangeHeader(const std::string& value,
- int64* start_position,
- int64* end_position,
- int64* length);
-
-// Google API related code and Drive File System code work on asynchronous
-// architecture and return the results via callbacks.
-// Following code implements a callback to copy such results.
-// Here is how to use:
-//
-// // Prepare result storage.
-// ResultType1 result1;
-// ResultType2 result2;
-// :
-//
-// PerformAsynchronousTask(
-// param1, param2, ...,
-// CreateCopyResultCallback(&result1, &result2, ...));
-// base::RunLoop().RunUntilIdle(); // Run message loop to complete
-// // the async task.
-//
-// // Hereafter, we can write expectation with results.
-// EXPECT_EQ(expected_result1, result1);
-// EXPECT_EQ(expected_result2, result2);
-// :
-//
-// Note: The max arity of the supported function is 4 based on the usage.
-namespace internal {
-// Following helper templates are to support Chrome's move semantics.
-// Their goal is defining helper methods which are similar to:
-// void CopyResultCallback1(T1* out1, T1&& in1)
-// void CopyResultCallback2(T1* out1, T2* out2, T1&& in1, T2&& in2)
-// :
-// in C++11.
-
-// Declare if the type is movable or not. Currently limited to scoped_ptr only.
-// We can add more types upon the usage.
-template<typename T> struct IsMovable : base::false_type {};
-template<typename T, typename D>
-struct IsMovable<scoped_ptr<T, D> > : base::true_type {};
-
-// InType is const T& if |UseConstRef| is true, otherwise |T|.
-template<bool UseConstRef, typename T> struct InTypeHelper {
- typedef const T& InType;
-};
-template<typename T> struct InTypeHelper<false, T> {
- typedef T InType;
-};
-
-// Simulates the std::move function in C++11. We use pointer here for argument,
-// instead of rvalue reference.
-template<bool IsMovable, typename T> struct MoveHelper {
- static const T& Move(const T* in) { return *in; }
-};
-template<typename T> struct MoveHelper<true, T> {
- static T Move(T* in) { return in->Pass(); }
-};
-
-// Helper to handle Chrome's move semantics correctly.
-template<typename T>
-struct CopyResultCallbackHelper
- // It is necessary to calculate the exact signature of callbacks we want
- // to create here. In our case, as we use value-parameters for primitive
- // types and movable types in the callback declaration.
- // Thus the incoming type is as follows:
- // 1) If the argument type |T| is class type but doesn't movable,
- // |InType| is const T&.
- // 2) Otherwise, |T| as is.
- : InTypeHelper<
- base::is_class<T>::value && !IsMovable<T>::value, // UseConstRef
- T>,
- MoveHelper<IsMovable<T>::value, T> {
-};
-
-// Copies the |in|'s value to |out|.
-template<typename T1>
-void CopyResultCallback(
- T1* out,
- typename CopyResultCallbackHelper<T1>::InType in) {
- *out = CopyResultCallbackHelper<T1>::Move(&in);
-}
-
-// Copies the |in1|'s value to |out1|, and |in2|'s to |out2|.
-template<typename T1, typename T2>
-void CopyResultCallback(
- T1* out1,
- T2* out2,
- typename CopyResultCallbackHelper<T1>::InType in1,
- typename CopyResultCallbackHelper<T2>::InType in2) {
- *out1 = CopyResultCallbackHelper<T1>::Move(&in1);
- *out2 = CopyResultCallbackHelper<T2>::Move(&in2);
-}
-
-// Copies the |in1|'s value to |out1|, |in2|'s to |out2|, and |in3|'s to |out3|.
-template<typename T1, typename T2, typename T3>
-void CopyResultCallback(
- T1* out1,
- T2* out2,
- T3* out3,
- typename CopyResultCallbackHelper<T1>::InType in1,
- typename CopyResultCallbackHelper<T2>::InType in2,
- typename CopyResultCallbackHelper<T3>::InType in3) {
- *out1 = CopyResultCallbackHelper<T1>::Move(&in1);
- *out2 = CopyResultCallbackHelper<T2>::Move(&in2);
- *out3 = CopyResultCallbackHelper<T3>::Move(&in3);
-}
-
-// Holds the pointers for output. This is introduced for the workaround of
-// the arity limitation of Callback.
-template<typename T1, typename T2, typename T3, typename T4>
-struct OutputParams {
- OutputParams(T1* out1, T2* out2, T3* out3, T4* out4)
- : out1(out1), out2(out2), out3(out3), out4(out4) {}
- T1* out1;
- T2* out2;
- T3* out3;
- T4* out4;
-};
-
-// Copies the |in1|'s value to |output->out1|, |in2|'s to |output->out2|,
-// and so on.
-template<typename T1, typename T2, typename T3, typename T4>
-void CopyResultCallback(
- const OutputParams<T1, T2, T3, T4>& output,
- typename CopyResultCallbackHelper<T1>::InType in1,
- typename CopyResultCallbackHelper<T2>::InType in2,
- typename CopyResultCallbackHelper<T3>::InType in3,
- typename CopyResultCallbackHelper<T4>::InType in4) {
- *output.out1 = CopyResultCallbackHelper<T1>::Move(&in1);
- *output.out2 = CopyResultCallbackHelper<T2>::Move(&in2);
- *output.out3 = CopyResultCallbackHelper<T3>::Move(&in3);
- *output.out4 = CopyResultCallbackHelper<T4>::Move(&in4);
-}
-
-} // namespace internal
-
-template<typename T1>
-base::Callback<void(typename internal::CopyResultCallbackHelper<T1>::InType)>
-CreateCopyResultCallback(T1* out1) {
- return base::Bind(&internal::CopyResultCallback<T1>, out1);
-}
-
-template<typename T1, typename T2>
-base::Callback<void(typename internal::CopyResultCallbackHelper<T1>::InType,
- typename internal::CopyResultCallbackHelper<T2>::InType)>
-CreateCopyResultCallback(T1* out1, T2* out2) {
- return base::Bind(&internal::CopyResultCallback<T1, T2>, out1, out2);
-}
-
-template<typename T1, typename T2, typename T3>
-base::Callback<void(typename internal::CopyResultCallbackHelper<T1>::InType,
- typename internal::CopyResultCallbackHelper<T2>::InType,
- typename internal::CopyResultCallbackHelper<T3>::InType)>
-CreateCopyResultCallback(T1* out1, T2* out2, T3* out3) {
- return base::Bind(
- &internal::CopyResultCallback<T1, T2, T3>, out1, out2, out3);
-}
-
-template<typename T1, typename T2, typename T3, typename T4>
-base::Callback<void(typename internal::CopyResultCallbackHelper<T1>::InType,
- typename internal::CopyResultCallbackHelper<T2>::InType,
- typename internal::CopyResultCallbackHelper<T3>::InType,
- typename internal::CopyResultCallbackHelper<T4>::InType)>
-CreateCopyResultCallback(T1* out1, T2* out2, T3* out3, T4* out4) {
- return base::Bind(
- &internal::CopyResultCallback<T1, T2, T3, T4>,
- internal::OutputParams<T1, T2, T3, T4>(out1, out2, out3, out4));
-}
-
-typedef std::pair<int64, int64> ProgressInfo;
-
-// Helper utility for recording the results via ProgressCallback.
-void AppendProgressCallbackResult(std::vector<ProgressInfo>* progress_values,
- int64 progress,
- int64 total);
-
-// Helper utility for recording the content via GetContentCallback.
-class TestGetContentCallback {
- public:
- TestGetContentCallback();
- ~TestGetContentCallback();
-
- const GetContentCallback& callback() const { return callback_; }
- const ScopedVector<std::string>& data() const { return data_; }
- ScopedVector<std::string>* mutable_data() { return &data_; }
- std::string GetConcatenatedData() const;
-
- private:
- void OnGetContent(google_apis::GDataErrorCode error,
- scoped_ptr<std::string> data);
-
- const GetContentCallback callback_;
- ScopedVector<std::string> data_;
-
- DISALLOW_COPY_AND_ASSIGN(TestGetContentCallback);
-};
-
-} // namespace test_util
-} // namespace google_apis
-
-#endif // CHROME_BROWSER_GOOGLE_APIS_TEST_UTIL_H_
« no previous file with comments | « chrome/browser/google_apis/task_util.cc ('k') | chrome/browser/google_apis/test_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698