12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CHROME_BROWSER_MEDIA_GALLERIES_MEDIA_GALLERIES_TEST_UTIL_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CHROME_BROWSER_MEDIA_GALLERIES_MEDIA_GALLERIES_TEST_UTIL_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/basictypes.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/files/scoped_temp_dir.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/memory/ref_counted.h" 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/memory/scoped_ptr.h" 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/test/scoped_path_override.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#if defined(OS_WIN) 154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "base/test/test_reg_util_win.h" 164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif 174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace extensions { 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class Extension; 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace registry_util { 234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class RegistryOverrideManager; 244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class Profile; 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 288bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#if defined(OS_MACOSX) 298bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)class MockPreferences; 308bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#endif 318bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_refptr<extensions::Extension> AddMediaGalleriesApp( 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& name, 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::vector<std::string>& media_galleries_permissions, 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Profile* profile); 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class EnsureMediaDirectoriesExists { 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EnsureMediaDirectoriesExists(); 40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch ~EnsureMediaDirectoriesExists(); 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int num_galleries() const { return num_galleries_; } 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::FilePath GetFakeAppDataPath() const; 454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#if defined(OS_WIN) 464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::FilePath GetFakeLocalAppDataPath() const; 474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif 484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#if defined(OS_WIN) || defined(OS_MACOSX) 491e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void SetCustomPicasaAppDataPath(const base::FilePath& path); 504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::FilePath GetFakePicasaFoldersRootPath() const; 514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif 524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void Init(); 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::ScopedTempDir fake_dir_; 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int num_galleries_; 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) scoped_ptr<base::ScopedPathOverride> app_data_override_; 61eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<base::ScopedPathOverride> music_override_; 62eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<base::ScopedPathOverride> pictures_override_; 63eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<base::ScopedPathOverride> video_override_; 644e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#if defined(OS_WIN) 654e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) scoped_ptr<base::ScopedPathOverride> local_app_data_override_; 664e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 674e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) registry_util::RegistryOverrideManager registry_override_; 684e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif 698bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#if defined(OS_MACOSX) 708bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) scoped_ptr<MockPreferences> mac_preferences_; 718bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#endif 72eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(EnsureMediaDirectoriesExists); 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CHROME_BROWSER_MEDIA_GALLERIES_MEDIA_GALLERIES_TEST_UTIL_H_ 77