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

Unified Diff: chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc

Issue 10822002: Media Galleries API: hookup the AllGalleries permission and add tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 8 years, 5 months 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
Index: chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc
diff --git a/chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc b/chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc
index 8a5f276e8c691cbd84ae08d59d288e23a2632a97..3f6bca22dd35246b43ad4211c2f1a16c0e445a9a 100644
--- a/chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc
+++ b/chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc
@@ -3,21 +3,88 @@
// found in the LICENSE file.
#include "base/command_line.h"
+#include "base/file_path.h"
+#include "base/file_util.h"
+#include "base/path_service.h"
+#include "chrome/browser/extensions/extension_apitest.h"
#include "chrome/browser/extensions/platform_app_browsertest_util.h"
+#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
+#if defined(OS_LINUX)
+#include <fstream>
+
+#include "base/environment.h"
+#include "base/scoped_temp_dir.h"
+#endif
+
namespace {
-class MediaGalleriesApiTest: public PlatformAppBrowserTest {
+class ExperimentalMediaGalleriesApiTest : public ExtensionApiTest {
public:
virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
- PlatformAppBrowserTest::SetUpCommandLine(command_line);
+ ExtensionApiTest::SetUpCommandLine(command_line);
command_line->AppendSwitch(switches::kEnableExperimentalExtensionApis);
}
};
+class EnsurePictureDirectoryExists {
+ public:
+ EnsurePictureDirectoryExists() {
+ Init();
+ }
+
+ private:
+ void Init() {
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
+ return;
+#elif defined(OS_LINUX)
+ // On Linux, the picture directory probably doesn't exist by default,
+ // so we override the settings to point to a tempdir.
+ ASSERT_TRUE(xdg_dir_.CreateUniqueTempDir());
+
+ FilePath config_file(xdg_dir_.path().Append("user-dirs.dirs"));
+ std::ofstream file;
+ file.open(config_file.value().c_str());
+ ASSERT_TRUE(file.is_open());
+ file << "XDG_PICTURES_DIR=\"" << xdg_dir_.path().value() << "\"";
+ file.close();
+
+ scoped_ptr<base::Environment> env(base::Environment::Create());
+ env->SetVar("XDG_CONFIG_HOME", xdg_dir_.path().value());
+#else
+ FilePath pictures_path;
+ ASSERT_TRUE(PathService::Get(chrome::DIR_USER_PICTURES, &pictures_path));
+ ASSERT_TRUE(file_util::DirectoryExists(pictures_path));
+#endif
+ }
+
+#if defined(OS_LINUX)
+ ScopedTempDir xdg_dir_;
+#endif
+};
+
+
} // namespace
-IN_PROC_BROWSER_TEST_F(MediaGalleriesApiTest, MediaGalleries) {
- ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries")) << message_;
+IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, NoGalleries) {
+ ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_galleries"))
+ << message_;
+}
+
+IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, MediaGalleriesRead) {
+ EnsurePictureDirectoryExists picture_directory;
+ ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/read_access"))
+ << message_;
+}
+
+IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, MediaGalleriesNoAccess) {
+ EnsurePictureDirectoryExists picture_directory;
+ ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_access"))
+ << message_;
+}
+
+IN_PROC_BROWSER_TEST_F(ExperimentalMediaGalleriesApiTest,
+ ExperimentalMediaGalleries) {
+ ASSERT_TRUE(RunExtensionTest("media_galleries/experimental")) << message_;
}

Powered by Google App Engine
This is Rietveld 408576698