1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file.
4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/extensions/extension_apitest.h"
6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace extensions {
8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class FileSystemProviderApiTest : public ExtensionApiTest {
10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public:
11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  FileSystemProviderApiTest()
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      : current_channel_(chrome::VersionInfo::CHANNEL_DEV) {}
13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // Loads a helper testing extension.
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void SetUpOnMainThread() OVERRIDE {
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ExtensionApiTest::SetUpOnMainThread();
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const extensions::Extension* extension = LoadExtensionWithFlags(
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        test_data_dir_.AppendASCII("file_system_provider/test_util"),
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        kFlagEnableIncognito);
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ASSERT_TRUE(extension);
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  }
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private:
24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  extensions::ScopedCurrentChannel current_channel_;
25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)};
26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, Mount) {
28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/mount",
29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                                          kFlagLoadAsComponent))
30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      << message_;
31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}
32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
33c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen MurdochIN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, Unmount) {
34c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/unmount",
35c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch                                          kFlagLoadAsComponent))
36c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch      << message_;
37c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}
38c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
3903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, GetAll) {
4003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/get_all",
4103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                                          kFlagLoadAsComponent))
4203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)      << message_;
4303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}
4403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
45010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, GetMetadata) {
46010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/get_metadata",
47010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                          kFlagLoadAsComponent))
48010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      << message_;
49010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
50010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
51010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, ReadDirectory) {
52010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/read_directory",
53010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                          kFlagLoadAsComponent))
54010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      << message_;
55010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
56010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, ReadFile) {
58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/read_file",
59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                          kFlagLoadAsComponent))
60cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      << message_;
61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
63cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, BigFile) {
64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/big_file",
65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                          kFlagLoadAsComponent))
66cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      << message_;
67cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
68cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
69116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, Evil) {
70116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/evil",
71116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                          kFlagLoadAsComponent))
72116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      << message_;
73116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
74116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
75116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, MimeType) {
76116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/mime_type",
77116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                          kFlagLoadAsComponent))
78116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      << message_;
79116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
81116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, CreateDirectory) {
82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ASSERT_TRUE(RunPlatformAppTestWithFlags(
83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      "file_system_provider/create_directory", kFlagLoadAsComponent))
84116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      << message_;
85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
86116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
87116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, DeleteEntry) {
88116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/delete_entry",
89116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                          kFlagLoadAsComponent))
90116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      << message_;
91116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
92116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
935f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, CreateFile) {
945f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/create_file",
955f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                                          kFlagLoadAsComponent))
965f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      << message_;
975f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
985f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
995f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, CopyEntry) {
1005f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/copy_entry",
1015f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                                          kFlagLoadAsComponent))
1025f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      << message_;
1035f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
1045f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
1055f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, MoveEntry) {
1065f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/move_entry",
1075f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                                          kFlagLoadAsComponent))
1085f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      << message_;
1095f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
1105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
1115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, Truncate) {
1125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/truncate",
1135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                                          kFlagLoadAsComponent))
1145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      << message_;
1155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
1165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
1175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, WriteFile) {
1185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/write_file",
1195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                                          kFlagLoadAsComponent))
1205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      << message_;
1215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
1225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
1231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciIN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, Extension) {
1241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ASSERT_TRUE(RunComponentExtensionTest("file_system_provider/extension"))
1251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      << message_;
1261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
1271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciIN_PROC_BROWSER_TEST_F(FileSystemProviderApiTest, Thumbnail) {
1291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ASSERT_TRUE(RunPlatformAppTestWithFlags("file_system_provider/thumbnail",
1301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                                          kFlagLoadAsComponent))
1311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      << message_;
1321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
1331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
134f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}  // namespace extensions
135