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

Side by Side Diff: chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc

Issue 11027051: MediaFileSystemRegistry unit tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years, 1 month 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
« no previous file with comments | « no previous file | chrome/browser/media_gallery/media_file_system_registry.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/command_line.h" 5 #include "base/command_line.h"
6 #include "base/file_path.h"
7 #include "base/file_util.h"
8 #include "base/path_service.h"
9 #include "base/stringprintf.h" 6 #include "base/stringprintf.h"
10 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
11 #include "chrome/browser/extensions/extension_apitest.h" 8 #include "chrome/browser/extensions/extension_apitest.h"
12 #include "chrome/browser/extensions/extension_process_manager.h" 9 #include "chrome/browser/extensions/extension_process_manager.h"
13 #include "chrome/browser/extensions/extension_system.h" 10 #include "chrome/browser/extensions/extension_system.h"
14 #include "chrome/browser/extensions/platform_app_browsertest_util.h" 11 #include "chrome/browser/extensions/platform_app_browsertest_util.h"
12 #include "chrome/browser/media_gallery/media_galleries_test_util.h"
15 #include "chrome/browser/ui/browser.h" 13 #include "chrome/browser/ui/browser.h"
16 #include "chrome/common/chrome_paths.h"
17 #include "chrome/common/chrome_switches.h" 14 #include "chrome/common/chrome_switches.h"
18 #include "content/public/browser/render_view_host.h" 15 #include "content/public/browser/render_view_host.h"
19 16
20 #if defined(OS_LINUX)
21 #include "base/environment.h"
22 #include "base/scoped_temp_dir.h"
23 #endif
24
25 using extensions::PlatformAppBrowserTest; 17 using extensions::PlatformAppBrowserTest;
26 18
27 namespace { 19 namespace {
28 20
29 class ExperimentalMediaGalleriesApiTest : public ExtensionApiTest { 21 class ExperimentalMediaGalleriesApiTest : public ExtensionApiTest {
30 public: 22 public:
31 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 23 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
32 ExtensionApiTest::SetUpCommandLine(command_line); 24 ExtensionApiTest::SetUpCommandLine(command_line);
33 command_line->AppendSwitch(switches::kEnableExperimentalExtensionApis); 25 command_line->AppendSwitch(switches::kEnableExperimentalExtensionApis);
34 } 26 }
(...skipping 12 matching lines...) Expand all
47 39
48 static const char kTestGalleries[] = "testGalleries(%d)"; 40 static const char kTestGalleries[] = "testGalleries(%d)";
49 ResultCatcher catcher; 41 ResultCatcher catcher;
50 host->render_view_host()->ExecuteJavascriptInWebFrame( 42 host->render_view_host()->ExecuteJavascriptInWebFrame(
51 string16(), 43 string16(),
52 ASCIIToUTF16(base::StringPrintf(kTestGalleries, expected_galleries))); 44 ASCIIToUTF16(base::StringPrintf(kTestGalleries, expected_galleries)));
53 EXPECT_TRUE(catcher.GetNextResult()) << message_; 45 EXPECT_TRUE(catcher.GetNextResult()) << message_;
54 } 46 }
55 }; 47 };
56 48
57 class EnsureMediaDirectoriesExists {
58 public:
59 EnsureMediaDirectoriesExists() : num_galleries_(0) {
60 Init();
61 }
62
63 int num_galleries() const { return num_galleries_; }
64
65 private:
66 void Init() {
67 #if defined(OS_CHROMEOS) || defined(OS_ANDROID)
68 return;
69 #elif defined(OS_LINUX)
70 // On Linux, the media directories may not exist by default, so override
71 // the settings to point to a temp directory with the media directories.
72 ASSERT_TRUE(xdg_dir_.CreateUniqueTempDir());
73 const FilePath xdg_path = xdg_dir_.path();
74 const FilePath music_dir(xdg_path.Append("Megaman"));
75 const FilePath pictures_dir(xdg_path.Append("Pitfall"));
76 const FilePath videos_dir(xdg_path.Append("VVVV"));
77 ASSERT_TRUE(file_util::CreateDirectory(music_dir));
78 ASSERT_TRUE(file_util::CreateDirectory(pictures_dir));
79 ASSERT_TRUE(file_util::CreateDirectory(videos_dir));
80
81 const FilePath config_file(xdg_path.Append("user-dirs.dirs"));
82 std::string xdg_user_dir_data = base::StringPrintf(
83 "XDG_MUSIC_DIR=\"%s\"\n"
84 "XDG_PICTURES_DIR=\"%s\"\n"
85 "XDG_VIDEOS_DIR=\"%s\"\n",
86 music_dir.value().c_str(),
87 pictures_dir.value().c_str(),
88 videos_dir.value().c_str());
89 ASSERT_TRUE(file_util::WriteFile(config_file,
90 xdg_user_dir_data.c_str(),
91 xdg_user_dir_data.size()));
92
93 scoped_ptr<base::Environment> env(base::Environment::Create());
94 env->SetVar("XDG_CONFIG_HOME", xdg_path.value());
95
96 num_galleries_ = 3;
97 #else
98 const int kDirectoryKeys[] = {
99 chrome::DIR_USER_MUSIC,
100 chrome::DIR_USER_PICTURES,
101 chrome::DIR_USER_VIDEOS,
102 };
103
104 for (size_t i = 0; i < arraysize(kDirectoryKeys); ++i) {
105 FilePath path;
106 if (PathService::Get(kDirectoryKeys[i], &path) &&
107 file_util::DirectoryExists(path)) {
108 ++num_galleries_;
109 }
110 }
111 ASSERT_GT(num_galleries_, 0);
112 #endif
113 }
114
115 #if defined(OS_LINUX)
116 ScopedTempDir xdg_dir_;
117 #endif
118
119 int num_galleries_;
120
121 DISALLOW_COPY_AND_ASSIGN(EnsureMediaDirectoriesExists);
122 };
123
124 } // namespace 49 } // namespace
125 50
126 IN_PROC_BROWSER_TEST_F(PlatformAppMediaGalleriesBrowserTest, NoGalleries) { 51 IN_PROC_BROWSER_TEST_F(PlatformAppMediaGalleriesBrowserTest, NoGalleries) {
127 EnsureMediaDirectoriesExists media_directories; 52 chrome::EnsureMediaDirectoriesExists media_directories;
128 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_galleries")) 53 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_galleries"))
129 << message_; 54 << message_;
130 } 55 }
131 56
132 IN_PROC_BROWSER_TEST_F(PlatformAppMediaGalleriesBrowserTest, 57 IN_PROC_BROWSER_TEST_F(PlatformAppMediaGalleriesBrowserTest,
133 MediaGalleriesRead) { 58 MediaGalleriesRead) {
134 EnsureMediaDirectoriesExists media_directories; 59 chrome::EnsureMediaDirectoriesExists media_directories;
135 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/read_access")) 60 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/read_access"))
136 << message_; 61 << message_;
137 RunSecondTestPhase(media_directories.num_galleries()); 62 RunSecondTestPhase(media_directories.num_galleries());
138 } 63 }
139 64
140 IN_PROC_BROWSER_TEST_F(PlatformAppMediaGalleriesBrowserTest, 65 IN_PROC_BROWSER_TEST_F(PlatformAppMediaGalleriesBrowserTest,
141 MediaGalleriesNoAccess) { 66 MediaGalleriesNoAccess) {
142 EnsureMediaDirectoriesExists media_directories; 67 chrome::EnsureMediaDirectoriesExists media_directories;
143 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_access")) 68 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_access"))
144 << message_; 69 << message_;
145 RunSecondTestPhase(media_directories.num_galleries()); 70 RunSecondTestPhase(media_directories.num_galleries());
146 } 71 }
147 72
148 IN_PROC_BROWSER_TEST_F(ExperimentalMediaGalleriesApiTest, 73 IN_PROC_BROWSER_TEST_F(ExperimentalMediaGalleriesApiTest,
149 ExperimentalMediaGalleries) { 74 ExperimentalMediaGalleries) {
150 ASSERT_TRUE(RunExtensionTest("media_galleries/experimental")) << message_; 75 ASSERT_TRUE(RunExtensionTest("media_galleries/experimental")) << message_;
151 } 76 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/media_gallery/media_file_system_registry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698