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 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_MEDIA_GALLERIES_MEDIA_GALLERIES_TEST_UTIL_H_ 6#define CHROME_BROWSER_MEDIA_GALLERIES_MEDIA_GALLERIES_TEST_UTIL_H_ 7 8#include <string> 9#include <vector> 10 11#include "base/basictypes.h" 12#include "base/files/scoped_temp_dir.h" 13#include "base/memory/ref_counted.h" 14#include "base/memory/scoped_ptr.h" 15#include "base/test/scoped_path_override.h" 16 17#if defined(OS_WIN) 18#include "base/test/test_reg_util_win.h" 19#endif 20 21namespace extensions { 22class Extension; 23} 24 25namespace registry_util { 26class RegistryOverrideManager; 27} 28 29class Profile; 30 31#if defined(OS_MACOSX) 32class MockPreferences; 33#endif 34 35scoped_refptr<extensions::Extension> AddMediaGalleriesApp( 36 const std::string& name, 37 const std::vector<std::string>& media_galleries_permissions, 38 Profile* profile); 39 40class EnsureMediaDirectoriesExists { 41 public: 42 EnsureMediaDirectoriesExists(); 43 ~EnsureMediaDirectoriesExists(); 44 45 int num_galleries() const { return num_galleries_; } 46 47 base::FilePath GetFakeAppDataPath() const; 48 49 // Changes the directories for the media paths (music, pictures, videos) 50 // overrides to new, different directories that are generated. 51 void ChangeMediaPathOverrides(); 52#if defined(OS_WIN) 53 base::FilePath GetFakeLocalAppDataPath() const; 54#endif 55#if defined(OS_WIN) || defined(OS_MACOSX) 56 void SetCustomPicasaAppDataPath(const base::FilePath& path); 57 base::FilePath GetFakePicasaFoldersRootPath() const; 58#endif 59 60#if defined(OS_MACOSX) 61 base::FilePath GetFakeITunesRootPath() const; 62 base::FilePath GetFakeIPhotoRootPath() const; 63#endif 64 65 private: 66 void Init(); 67 68 base::ScopedTempDir fake_dir_; 69 70 int num_galleries_; 71 72 int times_overrides_changed_; 73 74 scoped_ptr<base::ScopedPathOverride> app_data_override_; 75 scoped_ptr<base::ScopedPathOverride> music_override_; 76 scoped_ptr<base::ScopedPathOverride> pictures_override_; 77 scoped_ptr<base::ScopedPathOverride> video_override_; 78#if defined(OS_WIN) 79 scoped_ptr<base::ScopedPathOverride> local_app_data_override_; 80 81 registry_util::RegistryOverrideManager registry_override_; 82#endif 83#if defined(OS_MACOSX) 84 scoped_ptr<MockPreferences> mac_preferences_; 85#endif 86 87 DISALLOW_COPY_AND_ASSIGN(EnsureMediaDirectoriesExists); 88}; 89 90extern base::FilePath MakeMediaGalleriesTestingPath(const std::string& dir); 91 92#endif // CHROME_BROWSER_MEDIA_GALLERIES_MEDIA_GALLERIES_TEST_UTIL_H_ 93