| OLD | NEW | 
|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chrome/browser/chromeos/file_system_provider/operations/get_actions.h" | 5 #include "chrome/browser/chromeos/file_system_provider/operations/get_actions.h" | 
| 6 | 6 | 
|  | 7 #include <memory> | 
| 7 #include <string> | 8 #include <string> | 
| 8 #include <utility> | 9 #include <utility> | 
| 9 #include <vector> | 10 #include <vector> | 
| 10 | 11 | 
| 11 #include "base/files/file.h" | 12 #include "base/files/file.h" | 
| 12 #include "base/files/file_path.h" | 13 #include "base/files/file_path.h" | 
| 13 #include "base/json/json_reader.h" | 14 #include "base/json/json_reader.h" | 
| 14 #include "base/macros.h" | 15 #include "base/macros.h" | 
| 15 #include "base/memory/scoped_ptr.h" |  | 
| 16 #include "base/memory/scoped_vector.h" | 16 #include "base/memory/scoped_vector.h" | 
| 17 #include "base/values.h" | 17 #include "base/values.h" | 
| 18 #include "chrome/browser/chromeos/file_system_provider/operations/get_metadata.h
     " | 18 #include "chrome/browser/chromeos/file_system_provider/operations/get_metadata.h
     " | 
| 19 #include "chrome/browser/chromeos/file_system_provider/operations/test_util.h" | 19 #include "chrome/browser/chromeos/file_system_provider/operations/test_util.h" | 
| 20 #include "chrome/common/extensions/api/file_system_provider.h" | 20 #include "chrome/common/extensions/api/file_system_provider.h" | 
| 21 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_sy
     stem_provider_capabilities_handler.h" | 21 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_sy
     stem_provider_capabilities_handler.h" | 
| 22 #include "chrome/common/extensions/api/file_system_provider_internal.h" | 22 #include "chrome/common/extensions/api/file_system_provider_internal.h" | 
| 23 #include "extensions/browser/event_router.h" | 23 #include "extensions/browser/event_router.h" | 
| 24 #include "storage/browser/fileapi/async_file_util.h" | 24 #include "storage/browser/fileapi/async_file_util.h" | 
| 25 #include "testing/gtest/include/gtest/gtest.h" | 25 #include "testing/gtest/include/gtest/gtest.h" | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 65   const ScopedVector<Event>& events() const { return events_; } | 65   const ScopedVector<Event>& events() const { return events_; } | 
| 66 | 66 | 
| 67  private: | 67  private: | 
| 68   ScopedVector<Event> events_; | 68   ScopedVector<Event> events_; | 
| 69 | 69 | 
| 70   DISALLOW_COPY_AND_ASSIGN(CallbackLogger); | 70   DISALLOW_COPY_AND_ASSIGN(CallbackLogger); | 
| 71 }; | 71 }; | 
| 72 | 72 | 
| 73 // Returns the request value as |result| in case of successful parse. | 73 // Returns the request value as |result| in case of successful parse. | 
| 74 void CreateRequestValueFromJSON(const std::string& json, | 74 void CreateRequestValueFromJSON(const std::string& json, | 
| 75                                 scoped_ptr<RequestValue>* result) { | 75                                 std::unique_ptr<RequestValue>* result) { | 
| 76   using extensions::api::file_system_provider_internal:: | 76   using extensions::api::file_system_provider_internal:: | 
| 77       GetActionsRequestedSuccess::Params; | 77       GetActionsRequestedSuccess::Params; | 
| 78 | 78 | 
| 79   int json_error_code; | 79   int json_error_code; | 
| 80   std::string json_error_msg; | 80   std::string json_error_msg; | 
| 81   scoped_ptr<base::Value> value = base::JSONReader::ReadAndReturnError( | 81   std::unique_ptr<base::Value> value = base::JSONReader::ReadAndReturnError( | 
| 82       json, base::JSON_PARSE_RFC, &json_error_code, &json_error_msg); | 82       json, base::JSON_PARSE_RFC, &json_error_code, &json_error_msg); | 
| 83   ASSERT_TRUE(value.get()) << json_error_msg; | 83   ASSERT_TRUE(value.get()) << json_error_msg; | 
| 84 | 84 | 
| 85   base::ListValue* value_as_list; | 85   base::ListValue* value_as_list; | 
| 86   ASSERT_TRUE(value->GetAsList(&value_as_list)); | 86   ASSERT_TRUE(value->GetAsList(&value_as_list)); | 
| 87   scoped_ptr<Params> params(Params::Create(*value_as_list)); | 87   std::unique_ptr<Params> params(Params::Create(*value_as_list)); | 
| 88   ASSERT_TRUE(params.get()); | 88   ASSERT_TRUE(params.get()); | 
| 89   *result = RequestValue::CreateForGetActionsSuccess(std::move(params)); | 89   *result = RequestValue::CreateForGetActionsSuccess(std::move(params)); | 
| 90   ASSERT_TRUE(result->get()); | 90   ASSERT_TRUE(result->get()); | 
| 91 } | 91 } | 
| 92 | 92 | 
| 93 }  // namespace | 93 }  // namespace | 
| 94 | 94 | 
| 95 class FileSystemProviderOperationsGetActionsTest : public testing::Test { | 95 class FileSystemProviderOperationsGetActionsTest : public testing::Test { | 
| 96  protected: | 96  protected: | 
| 97   FileSystemProviderOperationsGetActionsTest() {} | 97   FileSystemProviderOperationsGetActionsTest() {} | 
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 189       "      \"id\": \"OFFLINE_NOT_NECESSARY\",\n" | 189       "      \"id\": \"OFFLINE_NOT_NECESSARY\",\n" | 
| 190       "      \"title\": \"Ignored title.\"\n" | 190       "      \"title\": \"Ignored title.\"\n" | 
| 191       "    },\n" | 191       "    },\n" | 
| 192       "    {\n" | 192       "    {\n" | 
| 193       "      \"id\": \"SomeCustomActionId\",\n" | 193       "      \"id\": \"SomeCustomActionId\",\n" | 
| 194       "      \"title\": \"Custom action.\"\n" | 194       "      \"title\": \"Custom action.\"\n" | 
| 195       "    }\n" | 195       "    }\n" | 
| 196       "  ],\n" | 196       "  ],\n" | 
| 197       "  0\n"  // execution_time | 197       "  0\n"  // execution_time | 
| 198       "]\n"; | 198       "]\n"; | 
| 199   scoped_ptr<RequestValue> request_value; | 199   std::unique_ptr<RequestValue> request_value; | 
| 200   ASSERT_NO_FATAL_FAILURE(CreateRequestValueFromJSON(input, &request_value)); | 200   ASSERT_NO_FATAL_FAILURE(CreateRequestValueFromJSON(input, &request_value)); | 
| 201 | 201 | 
| 202   const bool has_more = false; | 202   const bool has_more = false; | 
| 203   get_actions.OnSuccess(kRequestId, std::move(request_value), has_more); | 203   get_actions.OnSuccess(kRequestId, std::move(request_value), has_more); | 
| 204 | 204 | 
| 205   ASSERT_EQ(1u, callback_logger.events().size()); | 205   ASSERT_EQ(1u, callback_logger.events().size()); | 
| 206   CallbackLogger::Event* event = callback_logger.events()[0]; | 206   CallbackLogger::Event* event = callback_logger.events()[0]; | 
| 207   EXPECT_EQ(base::File::FILE_OK, event->result()); | 207   EXPECT_EQ(base::File::FILE_OK, event->result()); | 
| 208 | 208 | 
| 209   ASSERT_EQ(3u, event->actions().size()); | 209   ASSERT_EQ(3u, event->actions().size()); | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 226 | 226 | 
| 227   GetActions get_actions(NULL, file_system_info_, entry_paths_, | 227   GetActions get_actions(NULL, file_system_info_, entry_paths_, | 
| 228                          base::Bind(&CallbackLogger::OnGetActions, | 228                          base::Bind(&CallbackLogger::OnGetActions, | 
| 229                                     base::Unretained(&callback_logger))); | 229                                     base::Unretained(&callback_logger))); | 
| 230   get_actions.SetDispatchEventImplForTesting( | 230   get_actions.SetDispatchEventImplForTesting( | 
| 231       base::Bind(&util::LoggingDispatchEventImpl::OnDispatchEventImpl, | 231       base::Bind(&util::LoggingDispatchEventImpl::OnDispatchEventImpl, | 
| 232                  base::Unretained(&dispatcher))); | 232                  base::Unretained(&dispatcher))); | 
| 233 | 233 | 
| 234   EXPECT_TRUE(get_actions.Execute(kRequestId)); | 234   EXPECT_TRUE(get_actions.Execute(kRequestId)); | 
| 235 | 235 | 
| 236   get_actions.OnError(kRequestId, scoped_ptr<RequestValue>(new RequestValue()), | 236   get_actions.OnError(kRequestId, | 
|  | 237                       std::unique_ptr<RequestValue>(new RequestValue()), | 
| 237                       base::File::FILE_ERROR_TOO_MANY_OPENED); | 238                       base::File::FILE_ERROR_TOO_MANY_OPENED); | 
| 238 | 239 | 
| 239   ASSERT_EQ(1u, callback_logger.events().size()); | 240   ASSERT_EQ(1u, callback_logger.events().size()); | 
| 240   CallbackLogger::Event* event = callback_logger.events()[0]; | 241   CallbackLogger::Event* event = callback_logger.events()[0]; | 
| 241   EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, event->result()); | 242   EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, event->result()); | 
| 242   ASSERT_EQ(0u, event->actions().size()); | 243   ASSERT_EQ(0u, event->actions().size()); | 
| 243 } | 244 } | 
| 244 | 245 | 
| 245 }  // namespace operations | 246 }  // namespace operations | 
| 246 }  // namespace file_system_provider | 247 }  // namespace file_system_provider | 
| 247 }  // namespace chromeos | 248 }  // namespace chromeos | 
| OLD | NEW | 
|---|