1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Browser test for basic Chrome OS file manager functionality: 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// - The file list is updated when a file is added externally to the Downloads 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// folder. 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// - Selecting a file and copy-pasting it with the keyboard copies the file. 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// - Selecting a file and pressing delete deletes it. 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include <deque> 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <string> 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "base/bind.h" 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/files/file_path.h" 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/files/file_util.h" 1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "base/json/json_reader.h" 1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "base/json/json_value_converter.h" 194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "base/json/json_writer.h" 205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "base/prefs/pref_service.h" 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "base/strings/string_piece.h" 225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "base/strings/utf_string_conversions.h" 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/time/time.h" 2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "chrome/browser/chromeos/drive/drive_integration_service.h" 2590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "chrome/browser/chromeos/drive/file_system_interface.h" 265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/chromeos/file_manager/app_id.h" 2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "chrome/browser/chromeos/file_manager/drive_test_util.h" 285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/chromeos/file_manager/path_util.h" 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/chromeos/file_manager/volume_manager.h" 305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/chromeos/profiles/profile_helper.h" 317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "chrome/browser/drive/fake_drive_service.h" 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/extensions/component_loader.h" 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/extensions/extension_apitest.h" 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/profiles/profile.h" 355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/ui/ash/multi_user/multi_user_util.h" 365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h" 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/chrome_switches.h" 385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/common/pref_names.h" 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chromeos/chromeos_switches.h" 406e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "components/user_manager/user_manager.h" 41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "content/public/browser/notification_service.h" 42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "content/public/test/test_utils.h" 43c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "extensions/browser/api/test/test_api.h" 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/browser/app_window/app_window.h" 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/browser/app_window/app_window_registry.h" 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "extensions/browser/notification_types.h" 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/common/extension.h" 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/test/extension_test_message_listener.h" 4946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "google_apis/drive/drive_api_parser.h" 50a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "google_apis/drive/test_util.h" 512385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#include "net/test/embedded_test_server/embedded_test_server.h" 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/browser/fileapi/external_mount_points.h" 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)using drive::DriveIntegrationServiceFactory; 555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 56a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace file_manager { 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace { 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)enum EntryType { 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) FILE, 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DIRECTORY, 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 64a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)enum TargetVolume { LOCAL_VOLUME, DRIVE_VOLUME, USB_VOLUME, }; 6558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 66c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)enum SharedOption { 67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NONE, 68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SHARED, 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 71868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)enum GuestMode { 72868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) NOT_IN_GUEST_MODE, 7358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) IN_GUEST_MODE, 74f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) IN_INCOGNITO 75868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}; 76868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 77868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// This global operator is used from Google Test to format error messages. 78868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)std::ostream& operator<<(std::ostream& os, const GuestMode& guest_mode) { 79868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return os << (guest_mode == IN_GUEST_MODE ? 80868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) "IN_GUEST_MODE" : "NOT_IN_GUEST_MODE"); 81868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} 82868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 8358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Maps the given string to EntryType. Returns true on success. 8458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)bool MapStringToEntryType(const base::StringPiece& value, EntryType* output) { 8558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) if (value == "file") 8658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) *output = FILE; 8758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) else if (value == "directory") 8858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) *output = DIRECTORY; 8958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) else 9058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return false; 9158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return true; 9258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 9358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 9458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Maps the given string to SharedOption. Returns true on success. 9558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)bool MapStringToSharedOption(const base::StringPiece& value, 9658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) SharedOption* output) { 9758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) if (value == "shared") 9858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) *output = SHARED; 9958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) else if (value == "none") 10058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) *output = NONE; 10158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) else 10258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return false; 10358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return true; 10458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 10558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 10658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Maps the given string to TargetVolume. Returns true on success. 10758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)bool MapStringToTargetVolume(const base::StringPiece& value, 10858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) TargetVolume* output) { 10958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) if (value == "drive") 11058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) *output = DRIVE_VOLUME; 11158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) else if (value == "local") 11258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) *output = LOCAL_VOLUME; 113a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) else if (value == "usb") 114a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) *output = USB_VOLUME; 11558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) else 11658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return false; 11758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return true; 11858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 11958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 12058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Maps the given string to base::Time. Returns true on success. 12158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)bool MapStringToTime(const base::StringPiece& value, base::Time* time) { 12258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return base::Time::FromString(value.as_string().c_str(), time); 12358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 12458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 12558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Test data of file or directory. 126c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)struct TestEntryInfo { 12758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) TestEntryInfo() : type(FILE), shared_option(NONE) {} 12858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 129424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) TestEntryInfo(EntryType type, 130424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const std::string& source_file_name, 13168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const std::string& target_path, 132424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const std::string& mime_type, 133424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SharedOption shared_option, 134424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const base::Time& last_modified_time) : 135424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) type(type), 136424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) source_file_name(source_file_name), 13768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) target_path(target_path), 138424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) mime_type(mime_type), 139424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) shared_option(shared_option), 140424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) last_modified_time(last_modified_time) { 141424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) } 142424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 143c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EntryType type; 144424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) std::string source_file_name; // Source file name to be used as a prototype. 14568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) std::string target_path; // Target file or directory path. 146424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) std::string mime_type; 147c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SharedOption shared_option; 148424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) base::Time last_modified_time; 14958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 15058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // Registers the member information to the given converter. 15158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) static void RegisterJSONConverter( 15258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) base::JSONValueConverter<TestEntryInfo>* converter); 153c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 154c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 15558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// static 15658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)void TestEntryInfo::RegisterJSONConverter( 15758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) base::JSONValueConverter<TestEntryInfo>* converter) { 15858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) converter->RegisterCustomField("type", 15958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) &TestEntryInfo::type, 16058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) &MapStringToEntryType); 16158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) converter->RegisterStringField("sourceFileName", 16258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) &TestEntryInfo::source_file_name); 16368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) converter->RegisterStringField("targetPath", &TestEntryInfo::target_path); 16458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) converter->RegisterStringField("mimeType", &TestEntryInfo::mime_type); 16558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) converter->RegisterCustomField("sharedOption", 16658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) &TestEntryInfo::shared_option, 16758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) &MapStringToSharedOption); 16858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) converter->RegisterCustomField("lastModifiedTime", 16958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) &TestEntryInfo::last_modified_time, 17058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) &MapStringToTime); 17158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 17258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 17358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Message from JavaScript to add entries. 17458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)struct AddEntriesMessage { 17558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // Target volume to be added the |entries|. 17658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) TargetVolume volume; 17758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 17858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // Entries to be added. 17958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) ScopedVector<TestEntryInfo> entries; 18058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 18158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // Registers the member information to the given converter. 18258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) static void RegisterJSONConverter( 18358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) base::JSONValueConverter<AddEntriesMessage>* converter); 18458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}; 18558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 18658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// static 18758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)void AddEntriesMessage::RegisterJSONConverter( 18858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) base::JSONValueConverter<AddEntriesMessage>* converter) { 18958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) converter->RegisterCustomField("volume", 19058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) &AddEntriesMessage::volume, 19158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) &MapStringToTargetVolume); 19258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) converter->RegisterRepeatedMessage<TestEntryInfo>( 19358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) "entries", 19458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) &AddEntriesMessage::entries); 19558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 19658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 197a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Test volume. 198a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class TestVolume { 199a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) protected: 200a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) explicit TestVolume(const std::string& name) : name_(name) {} 201a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual ~TestVolume() {} 202a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 203a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) bool CreateRootDirectory(const Profile* profile) { 20446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const base::FilePath path = profile->GetPath().Append(name_); 20546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return root_.path() == path || root_.Set(path); 206a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 207a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 208a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const std::string& name() { return name_; } 209a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const base::FilePath root_path() { return root_.path(); } 210a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 211a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) private: 212a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) std::string name_; 213a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) base::ScopedTempDir root_; 214a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}; 215a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 216c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// The local volume class for test. 217c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// This class provides the operations for a test volume that simulates local 218c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// drive. 219a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class LocalTestVolume : public TestVolume { 220c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public: 221a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) explicit LocalTestVolume(const std::string& name) : TestVolume(name) {} 222a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual ~LocalTestVolume() {} 223a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 224c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Adds this volume to the file system as a local volume. Returns true on 225c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // success. 226a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual bool Mount(Profile* profile) = 0; 227c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 228868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) void CreateEntry(const TestEntryInfo& entry) { 22968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const base::FilePath target_path = 230a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) root_path().AppendASCII(entry.target_path); 23168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 23268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) entries_.insert(std::make_pair(target_path, entry)); 233868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) switch (entry.type) { 234868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case FILE: { 23568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const base::FilePath source_path = 236868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) google_apis::test_util::GetTestFilePath("chromeos/file_manager"). 237868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) AppendASCII(entry.source_file_name); 2387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch ASSERT_TRUE(base::CopyFile(source_path, target_path)) 239868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) << "Copy from " << source_path.value() 240868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) << " to " << target_path.value() << " failed."; 241868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) break; 242868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 243868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case DIRECTORY: 244a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) ASSERT_TRUE(base::CreateDirectory(target_path)) << 245868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) "Failed to create a directory: " << target_path.value(); 246868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) break; 247868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 24868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) ASSERT_TRUE(UpdateModifiedTime(entry)); 249c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 250c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 251c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) private: 25268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // Updates ModifiedTime of the entry and its parents by referring 25368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // TestEntryInfo. Returns true on success. 25468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) bool UpdateModifiedTime(const TestEntryInfo& entry) { 255a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const base::FilePath path = root_path().AppendASCII(entry.target_path); 256a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) if (!base::TouchFile(path, entry.last_modified_time, 257a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) entry.last_modified_time)) 25868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) return false; 25968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 26068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // Update the modified time of parent directories because it may be also 26168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // affected by the update of child items. 262a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (path.DirName() != root_path()) { 26368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const std::map<base::FilePath, const TestEntryInfo>::iterator it = 26468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) entries_.find(path.DirName()); 26568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) if (it == entries_.end()) 26668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) return false; 26768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) return UpdateModifiedTime(it->second); 26868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) } 26968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) return true; 27068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) } 27168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 27268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) std::map<base::FilePath, const TestEntryInfo> entries_; 273c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 274c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 275a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class DownloadsTestVolume : public LocalTestVolume { 276c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public: 277a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) DownloadsTestVolume() : LocalTestVolume("Downloads") {} 278a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual ~DownloadsTestVolume() {} 279a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 280a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual bool Mount(Profile* profile) OVERRIDE { 281a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return CreateRootDirectory(profile) && 282a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) VolumeManager::Get(profile) 283a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ->RegisterDownloadsDirectoryForTesting(root_path()); 284c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 285a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}; 286a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 28746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Test volume for mimicing a specified type of volumes by a local folder. 28846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class FakeTestVolume : public LocalTestVolume { 289a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) public: 29046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) FakeTestVolume(const std::string& name, 29146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) VolumeType volume_type, 29246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) chromeos::DeviceType device_type) 29346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) : LocalTestVolume(name), 29446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) volume_type_(volume_type), 29546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) device_type_(device_type) {} 29646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual ~FakeTestVolume() {} 29746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 29846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Simple test entries used for testing, e.g., read-only volumes. 29946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) bool PrepareTestEntries(Profile* profile) { 30046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) if (!CreateRootDirectory(profile)) 30146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return false; 30246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Must be in sync with BASIC_FAKE_ENTRY_SET in the JS test code. 30346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) CreateEntry( 30446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestEntryInfo(FILE, "text.txt", "hello.txt", "text/plain", NONE, 30546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::Time::Now())); 30646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) CreateEntry( 30746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestEntryInfo(DIRECTORY, std::string(), "A", std::string(), NONE, 30846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::Time::Now())); 30946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return true; 31046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 311c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 312a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual bool Mount(Profile* profile) OVERRIDE { 313a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (!CreateRootDirectory(profile)) 314c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 31503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) storage::ExternalMountPoints* const mount_points = 31603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) storage::ExternalMountPoints::GetSystemInstance(); 317a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 318a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // First revoke the existing mount point (if any). 319a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) mount_points->RevokeFileSystem(name()); 320a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const bool result = 321a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) mount_points->RegisterFileSystem(name(), 32203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) storage::kFileSystemTypeNativeLocal, 32303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) storage::FileSystemMountOption(), 324a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) root_path()); 325a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (!result) 326a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return false; 327a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 32846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) VolumeManager::Get(profile)->AddVolumeInfoForTesting( 32946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) root_path(), volume_type_, device_type_); 330c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return true; 331c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 33246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 33346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) private: 33446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const VolumeType volume_type_; 33546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const chromeos::DeviceType device_type_; 336a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}; 337a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 338a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// The drive volume class for test. 339a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// This class provides the operations for a test volume that simulates Google 340a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// drive. 341a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class DriveTestVolume : public TestVolume { 342a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) public: 343a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) DriveTestVolume() : TestVolume("drive"), integration_service_(NULL) {} 344a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual ~DriveTestVolume() {} 345c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 346a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void CreateEntry(const TestEntryInfo& entry) { 34768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const base::FilePath path = 34868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) base::FilePath::FromUTF8Unsafe(entry.target_path); 34968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const std::string target_name = path.BaseName().AsUTF8Unsafe(); 35068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 35168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // Obtain the parent entry. 35268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) drive::FileError error = drive::FILE_ERROR_OK; 35368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) scoped_ptr<drive::ResourceEntry> parent_entry(new drive::ResourceEntry); 354f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) integration_service_->file_system()->GetResourceEntry( 35568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) drive::util::GetDriveMyDriveRootPath().Append(path).DirName(), 35668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) google_apis::test_util::CreateCopyResultCallback( 35768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) &error, &parent_entry)); 358116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch content::RunAllBlockingPoolTasksUntilIdle(); 35968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) ASSERT_EQ(drive::FILE_ERROR_OK, error); 36068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) ASSERT_TRUE(parent_entry); 36168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 362868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) switch (entry.type) { 363868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case FILE: 364a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) CreateFile(entry.source_file_name, 36568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) parent_entry->resource_id(), 36668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) target_name, 367868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) entry.mime_type, 368868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) entry.shared_option == SHARED, 369424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) entry.last_modified_time); 370868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) break; 371868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) case DIRECTORY: 372a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) CreateDirectory( 373a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) parent_entry->resource_id(), target_name, entry.last_modified_time); 374868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) break; 375c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 376c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 377c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 378c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Creates an empty directory with the given |name| and |modification_time|. 379a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void CreateDirectory(const std::string& parent_id, 38068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const std::string& target_name, 381424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const base::Time& modification_time) { 382c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; 38346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) scoped_ptr<google_apis::FileResource> entry; 384a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fake_drive_service_->AddNewDirectory( 38568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) parent_id, 38668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) target_name, 3875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) drive::DriveServiceInterface::AddNewDirectoryOptions(), 38846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) google_apis::test_util::CreateCopyResultCallback(&error, &entry)); 38990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) base::MessageLoop::current()->RunUntilIdle(); 39068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) ASSERT_EQ(google_apis::HTTP_CREATED, error); 39146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ASSERT_TRUE(entry); 392c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 393a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fake_drive_service_->SetLastModifiedTime( 39446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) entry->file_id(), 395424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) modification_time, 39646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) google_apis::test_util::CreateCopyResultCallback(&error, &entry)); 39790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) base::MessageLoop::current()->RunUntilIdle(); 39890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_TRUE(error == google_apis::HTTP_SUCCESS); 39946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ASSERT_TRUE(entry); 400c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) CheckForUpdates(); 401c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 402c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 40390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // Creates a test file with the given spec. 40490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // Serves |test_file_name| file. Pass an empty string for an empty file. 405a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void CreateFile(const std::string& source_file_name, 40668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const std::string& parent_id, 40768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const std::string& target_name, 408c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& mime_type, 409c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool shared_with_me, 410424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const base::Time& modification_time) { 411c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; 41290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 41390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) std::string content_data; 41490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) if (!source_file_name.empty()) { 41590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) base::FilePath source_file_path = 41690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) google_apis::test_util::GetTestFilePath("chromeos/file_manager"). 41790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) AppendASCII(source_file_name); 41858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) ASSERT_TRUE(base::ReadFileToString(source_file_path, &content_data)); 41990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) } 42090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 42146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) scoped_ptr<google_apis::FileResource> entry; 422a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fake_drive_service_->AddNewFile( 423c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) mime_type, 42490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) content_data, 42568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) parent_id, 42668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) target_name, 427c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) shared_with_me, 42846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) google_apis::test_util::CreateCopyResultCallback(&error, &entry)); 42990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) base::MessageLoop::current()->RunUntilIdle(); 43090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(google_apis::HTTP_CREATED, error); 43146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ASSERT_TRUE(entry); 432c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 433a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fake_drive_service_->SetLastModifiedTime( 43446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) entry->file_id(), 435424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) modification_time, 43646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) google_apis::test_util::CreateCopyResultCallback(&error, &entry)); 43790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) base::MessageLoop::current()->RunUntilIdle(); 43890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(google_apis::HTTP_SUCCESS, error); 43946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ASSERT_TRUE(entry); 440c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 441c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) CheckForUpdates(); 442c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 443c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 444c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Notifies FileSystem that the contents in FakeDriveService are 445c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // changed, hence the new contents should be fetched. 446c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void CheckForUpdates() { 44790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) if (integration_service_ && integration_service_->file_system()) { 44890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) integration_service_->file_system()->CheckForUpdates(); 449c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 450c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 451c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 4522385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch // Sets the url base for the test server to be used to generate share urls 4532385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch // on the files and directories. 454a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void ConfigureShareUrlBase(const GURL& share_url_base) { 455a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fake_drive_service_->set_share_url_base(share_url_base); 4562385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch } 4572385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch 45890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) drive::DriveIntegrationService* CreateDriveIntegrationService( 45990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) Profile* profile) { 460a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) profile_ = profile; 461a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fake_drive_service_ = new drive::FakeDriveService; 462a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) fake_drive_service_->LoadAppListForDriveApi("drive/applist.json"); 4635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 464a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (!CreateRootDirectory(profile)) 465a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return NULL; 46690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) integration_service_ = new drive::DriveIntegrationService( 467a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) profile, NULL, fake_drive_service_, std::string(), root_path(), NULL); 46890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return integration_service_; 469c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 470c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 471c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) private: 472a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) Profile* profile_; 473a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) drive::FakeDriveService* fake_drive_service_; 47490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) drive::DriveIntegrationService* integration_service_; 475c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 476c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 477eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Listener to obtain the test relative messages synchronously. 478eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass FileManagerTestListener : public content::NotificationObserver { 479eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch public: 480eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch struct Message { 481eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch int type; 482eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch std::string message; 483f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_refptr<extensions::TestSendMessageFunction> function; 484eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch }; 485eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 486eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FileManagerTestListener() { 487eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch registrar_.Add(this, 4885f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) extensions::NOTIFICATION_EXTENSION_TEST_PASSED, 489eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch content::NotificationService::AllSources()); 490eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch registrar_.Add(this, 4915f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) extensions::NOTIFICATION_EXTENSION_TEST_FAILED, 492eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch content::NotificationService::AllSources()); 493eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch registrar_.Add(this, 4945f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) extensions::NOTIFICATION_EXTENSION_TEST_MESSAGE, 495eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch content::NotificationService::AllSources()); 496eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 497eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 498eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch Message GetNextMessage() { 499eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch if (messages_.empty()) 500eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch content::RunMessageLoop(); 501eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const Message entry = messages_.front(); 502eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch messages_.pop_front(); 503eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch return entry; 504eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 505eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 506eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void Observe(int type, 507eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const content::NotificationSource& source, 508eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const content::NotificationDetails& details) OVERRIDE { 509eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch Message entry; 510eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch entry.type = type; 5115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) entry.message = type != extensions::NOTIFICATION_EXTENSION_TEST_PASSED 5125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ? *content::Details<std::string>(details).ptr() 5135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) : std::string(); 5145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) entry.function = 5155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) type == extensions::NOTIFICATION_EXTENSION_TEST_MESSAGE 5165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ? content::Source<extensions::TestSendMessageFunction>(source).ptr() 5175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) : NULL; 518eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch messages_.push_back(entry); 519eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::MessageLoopForUI::current()->Quit(); 520eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 521eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 522eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch private: 523eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch std::deque<Message> messages_; 524eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch content::NotificationRegistrar registrar_; 525eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}; 526eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 527868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// The base test class. 5285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class FileManagerBrowserTestBase : public ExtensionApiTest { 529c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) protected: 530868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) virtual void SetUpInProcessBrowserTestFixture() OVERRIDE; 531868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 532868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) virtual void SetUpOnMainThread() OVERRIDE; 533868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 534c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Adds an incognito and guest-mode flags for tests in the guest mode. 535c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE; 536c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 537c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Loads our testing extension and sends it a string identifying the current 538c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // test. 53946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual void StartTest(); 54046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void RunTestMessageLoop(); 541c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Overriding point for test configurations. 54346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual const char* GetTestManifestName() const { 54446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return "file_manager_test_manifest.json"; 54546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 5465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual GuestMode GetGuestModeParam() const = 0; 5475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual const char* GetTestCaseNameParam() const = 0; 5485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual std::string OnMessage(const std::string& name, 5495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const base::Value* value); 5505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) scoped_ptr<LocalTestVolume> local_volume_; 552a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) linked_ptr<DriveTestVolume> drive_volume_; 553a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) std::map<Profile*, linked_ptr<DriveTestVolume> > drive_volumes_; 55446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) scoped_ptr<FakeTestVolume> usb_volume_; 55546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) scoped_ptr<FakeTestVolume> mtp_volume_; 556a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 557a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) private: 558a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) drive::DriveIntegrationService* CreateDriveIntegrationService( 559a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) Profile* profile); 560a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) DriveIntegrationServiceFactory::FactoryCallback 561a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) create_drive_integration_service_; 562a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) scoped_ptr<DriveIntegrationServiceFactory::ScopedFactoryForTest> 563a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) service_factory_for_test_; 564c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 565c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void FileManagerBrowserTestBase::SetUpInProcessBrowserTestFixture() { 567868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ExtensionApiTest::SetUpInProcessBrowserTestFixture(); 568868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extensions::ComponentLoader::EnableBackgroundExtensionsForTesting(); 5695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 570a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) local_volume_.reset(new DownloadsTestVolume); 5715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) if (GetGuestModeParam() != IN_GUEST_MODE) { 572a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) create_drive_integration_service_ = 573a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) base::Bind(&FileManagerBrowserTestBase::CreateDriveIntegrationService, 574a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) base::Unretained(this)); 575a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) service_factory_for_test_.reset( 576a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) new DriveIntegrationServiceFactory::ScopedFactoryForTest( 577a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) &create_drive_integration_service_)); 5785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 579868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} 580868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 5815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void FileManagerBrowserTestBase::SetUpOnMainThread() { 582868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ExtensionApiTest::SetUpOnMainThread(); 5835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ASSERT_TRUE(local_volume_->Mount(profile())); 584868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 585a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (GetGuestModeParam() != IN_GUEST_MODE) { 5862385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch // Install the web server to serve the mocked share dialog. 5872385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); 5882385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch const GURL share_url_base(embedded_test_server()->GetURL( 5892385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch "/chromeos/file_manager/share_dialog_mock/index.html")); 590f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) drive_volume_ = drive_volumes_[profile()->GetOriginalProfile()]; 591a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) drive_volume_->ConfigureShareUrlBase(share_url_base); 5925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) test_util::WaitUntilDriveMountPointIsAdded(profile()); 593868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 594868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} 595868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 5965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void FileManagerBrowserTestBase::SetUpCommandLine(CommandLine* command_line) { 5975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) if (GetGuestModeParam() == IN_GUEST_MODE) { 598c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) command_line->AppendSwitch(chromeos::switches::kGuestSession); 599c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) command_line->AppendSwitchNative(chromeos::switches::kLoginUser, ""); 600c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) command_line->AppendSwitch(switches::kIncognito); 601c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 602f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) if (GetGuestModeParam() == IN_INCOGNITO) { 603f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) command_line->AppendSwitch(switches::kIncognito); 604f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 605c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ExtensionApiTest::SetUpCommandLine(command_line); 606c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 607c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 6085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void FileManagerBrowserTestBase::StartTest() { 609eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Launch the extension. 61046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const base::FilePath path = 61146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) test_data_dir_.AppendASCII("file_manager_browsertest"); 61246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const extensions::Extension* const extension = 61346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) LoadExtensionAsComponentWithManifest(path, GetTestManifestName()); 614c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ASSERT_TRUE(extension); 615c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 61646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) RunTestMessageLoop(); 61746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 61846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 61946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)void FileManagerBrowserTestBase::RunTestMessageLoop() { 620eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Handle the messages from JavaScript. 621eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // The while loop is break when the test is passed or failed. 622eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FileManagerTestListener listener; 623eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch while (true) { 624eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FileManagerTestListener::Message entry = listener.GetNextMessage(); 6255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if (entry.type == extensions::NOTIFICATION_EXTENSION_TEST_PASSED) { 626eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Test succeed. 627eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch break; 6285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) } else if (entry.type == extensions::NOTIFICATION_EXTENSION_TEST_FAILED) { 629eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Test failed. 630eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch ADD_FAILURE() << entry.message; 631eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch break; 63258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 63358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 63458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // Parse the message value as JSON. 63558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const scoped_ptr<const base::Value> value( 63658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) base::JSONReader::Read(entry.message)); 63758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 63858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // If the message is not the expected format, just ignore it. 63958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const base::DictionaryValue* message_dictionary = NULL; 64058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) std::string name; 64158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) if (!value || !value->GetAsDictionary(&message_dictionary) || 64258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) !message_dictionary->GetString("name", &name)) 64358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) continue; 64458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 6455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) entry.function->Reply(OnMessage(name, value.get())); 6465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 6475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 6485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)std::string FileManagerBrowserTestBase::OnMessage(const std::string& name, 6505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const base::Value* value) { 6515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) if (name == "getTestName") { 6525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Pass the test case name. 6535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return GetTestCaseNameParam(); 6545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } else if (name == "getRootPaths") { 6555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Pass the root paths. 6565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const scoped_ptr<base::DictionaryValue> res(new base::DictionaryValue()); 6575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) res->SetString("downloads", 6585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) "/" + util::GetDownloadsMountPointName(profile())); 6595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) res->SetString("drive", 6605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) "/" + drive::util::GetDriveMountPointPath(profile() 6615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ).BaseName().AsUTF8Unsafe() + "/root"); 6625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::string jsonString; 6635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::JSONWriter::Write(res.get(), &jsonString); 6645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return jsonString; 6655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } else if (name == "isInGuestMode") { 6665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Obtain whether the test is in guest mode or not. 667f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) return GetGuestModeParam() != NOT_IN_GUEST_MODE ? "true" : "false"; 6685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } else if (name == "getCwsWidgetContainerMockUrl") { 6695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Obtain whether the test is in guest mode or not. 6705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const GURL url = embedded_test_server()->GetURL( 6715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) "/chromeos/file_manager/cws_container_mock/index.html"); 6725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::string origin = url.GetOrigin().spec(); 6735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Removes trailing a slash. 6755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) if (*origin.rbegin() == '/') 6765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) origin.resize(origin.length() - 1); 6775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const scoped_ptr<base::DictionaryValue> res(new base::DictionaryValue()); 6795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) res->SetString("url", url.spec()); 6805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) res->SetString("origin", origin); 6815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::string jsonString; 6825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::JSONWriter::Write(res.get(), &jsonString); 6835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return jsonString; 6845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } else if (name == "addEntries") { 6855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Add entries to the specified volume. 6865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::JSONValueConverter<AddEntriesMessage> add_entries_message_converter; 6875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) AddEntriesMessage message; 6885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) if (!add_entries_message_converter.Convert(*value, &message)) 6895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return "onError"; 6905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) for (size_t i = 0; i < message.entries.size(); ++i) { 6915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) switch (message.volume) { 6925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case LOCAL_VOLUME: 6935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) local_volume_->CreateEntry(*message.entries[i]); 6945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) break; 6955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case DRIVE_VOLUME: 696a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (drive_volume_.get()) 697a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) drive_volume_->CreateEntry(*message.entries[i]); 698a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) break; 699a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) case USB_VOLUME: 700a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (usb_volume_) 701a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) usb_volume_->CreateEntry(*message.entries[i]); 7025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) break; 7035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) default: 7045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) NOTREACHED(); 7055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) break; 70658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 707eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 7085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return "onEntryAdded"; 709a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } else if (name == "mountFakeUsb") { 71046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) usb_volume_.reset(new FakeTestVolume("fake-usb", 71146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) VOLUME_TYPE_REMOVABLE_DISK_PARTITION, 71246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) chromeos::DEVICE_TYPE_USB)); 713a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) usb_volume_->Mount(profile()); 714a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return "true"; 71546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } else if (name == "mountFakeMtp") { 71646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) mtp_volume_.reset(new FakeTestVolume("fake-mtp", 71746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) VOLUME_TYPE_MTP, 71846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) chromeos::DEVICE_TYPE_UNKNOWN)); 71946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) if (!mtp_volume_->PrepareTestEntries(profile())) 72046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return "false"; 72146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) mtp_volume_->Mount(profile()); 72246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return "true"; 7235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 7245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return "unknownMessage"; 7255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 7265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 727a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)drive::DriveIntegrationService* 728a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)FileManagerBrowserTestBase::CreateDriveIntegrationService(Profile* profile) { 729f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) drive_volumes_[profile->GetOriginalProfile()].reset(new DriveTestVolume()); 730f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) return drive_volumes_[profile->GetOriginalProfile()]-> 731f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) CreateDriveIntegrationService(profile); 732a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 733a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 7345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Parameter of FileManagerBrowserTest. 7355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// The second value is the case name of JavaScript. 7365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef std::tr1::tuple<GuestMode, const char*> TestParameter; 7375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 7385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Test fixture class for normal (not multi-profile related) tests. 7395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class FileManagerBrowserTest : 7405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public FileManagerBrowserTestBase, 7415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public ::testing::WithParamInterface<TestParameter> { 7425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual GuestMode GetGuestModeParam() const OVERRIDE { 7435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return std::tr1::get<0>(GetParam()); 744eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 7455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual const char* GetTestCaseNameParam() const OVERRIDE { 7465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return std::tr1::get<1>(GetParam()); 7475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 7485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}; 7495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 7506e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)IN_PROC_BROWSER_TEST_P(FileManagerBrowserTest, Test) { 7515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) StartTest(); 752c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 753c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 75446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Unlike TEST/TEST_F, which are macros that expand to further macros, 75546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// INSTANTIATE_TEST_CASE_P is a macro that expands directly to code that 75646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// stringizes the arguments. As a result, macros passed as parameters (such as 75746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// prefix or test_case_name) will not be expanded by the preprocessor. To work 75846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// around this, indirect the macro for INSTANTIATE_TEST_CASE_P, so that the 75946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// pre-processor will expand macros such as MAYBE_test_name before 76046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// instantiating the test. 76146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define WRAPPED_INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) \ 76246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) 76346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 76446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 76546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 76646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_FileDisplay DISABLED_FileDisplay 76746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 76846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_FileDisplay FileDisplay 76946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 77046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 77146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_FileDisplay, 772eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FileManagerBrowserTest, 773868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "fileDisplayDownloads"), 774868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) TestParameter(IN_GUEST_MODE, "fileDisplayDownloads"), 77546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "fileDisplayDrive"), 77646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "fileDisplayMtp"))); 77746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 7785f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// http://crbug.com/327719 77946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 7805f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) DISABLED_OpenZipFiles, 781eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FileManagerBrowserTest, 782cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ::testing::Values(TestParameter(IN_GUEST_MODE, "zipOpenDownloads"), 783cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "zipOpenDownloads"), 784cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "zipOpenDrive"))); 785868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 78646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 78746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 78846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_OpenVideoFiles DISABLED_OpenVideoFiles 78946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 79046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_OpenVideoFiles OpenVideoFiles 79146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 79246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 79346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_OpenVideoFiles, 794effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch FileManagerBrowserTest, 795effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch ::testing::Values(TestParameter(IN_GUEST_MODE, "videoOpenDownloads"), 796effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch TestParameter(NOT_IN_GUEST_MODE, "videoOpenDownloads"), 797effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch TestParameter(NOT_IN_GUEST_MODE, "videoOpenDrive"))); 798effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 79946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 80046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 80146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_OpenAudioFiles DISABLED_OpenAudioFiles 80246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 80346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_OpenAudioFiles OpenAudioFiles 80446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 80546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 80646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_OpenAudioFiles, 807effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch FileManagerBrowserTest, 808e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch ::testing::Values( 809e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch TestParameter(IN_GUEST_MODE, "audioOpenDownloads"), 810e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch TestParameter(NOT_IN_GUEST_MODE, "audioOpenDownloads"), 811e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch TestParameter(NOT_IN_GUEST_MODE, "audioOpenDrive"), 812c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch TestParameter(NOT_IN_GUEST_MODE, "audioAutoAdvanceDrive"), 813c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch TestParameter(NOT_IN_GUEST_MODE, "audioRepeatSingleFileDrive"), 814c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch TestParameter(NOT_IN_GUEST_MODE, "audioNoRepeatSingleFileDrive"), 815c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch TestParameter(NOT_IN_GUEST_MODE, "audioRepeatMultipleFileDrive"), 816c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch TestParameter(NOT_IN_GUEST_MODE, "audioNoRepeatMultipleFileDrive"))); 817effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 8181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Flaky http://crbug.com/327719 819116680a4aac90f2aa7413d9095a592090648e557Ben MurdochWRAPPED_INSTANTIATE_TEST_CASE_P( 8201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DISABLED_CreateNewFolder, 821cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) FileManagerBrowserTest, 822cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, 823cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) "createNewFolderAfterSelectFile"), 824cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TestParameter(IN_GUEST_MODE, 825cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) "createNewFolderDownloads"), 826cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, 827cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) "createNewFolderDownloads"), 828cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, 829cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) "createNewFolderDrive"))); 830cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 83146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 83246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 83346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_KeyboardOperations DISABLED_KeyboardOperations 83446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 83546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_KeyboardOperations KeyboardOperations 83646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 83746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 83846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_KeyboardOperations, 839eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FileManagerBrowserTest, 840868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ::testing::Values(TestParameter(IN_GUEST_MODE, "keyboardDeleteDownloads"), 841868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, 842868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) "keyboardDeleteDownloads"), 843868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "keyboardDeleteDrive"), 844868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) TestParameter(IN_GUEST_MODE, "keyboardCopyDownloads"), 845868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "keyboardCopyDownloads"), 846effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch TestParameter(NOT_IN_GUEST_MODE, "keyboardCopyDrive"), 84746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(IN_GUEST_MODE, "renameFileDownloads"), 84846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "renameFileDownloads"), 84946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "renameFileDrive"))); 850868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 851f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 852f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#if !defined(NDEBUG) 853f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define MAYBE_DriveSpecific DISABLED_DriveSpecific 854f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#else 855f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define MAYBE_DriveSpecific DriveSpecific 856f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif 857f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 858f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) MAYBE_DriveSpecific, 859eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FileManagerBrowserTest, 860868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "openSidebarRecent"), 861868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "openSidebarOffline"), 862868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, 863868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) "openSidebarSharedWithMe"), 864868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "autocomplete"))); 865868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 86646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 86746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 86846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_Transfer DISABLED_Transfer 86946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 87046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_Transfer Transfer 87146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 87246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 87346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_Transfer, 874eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FileManagerBrowserTest, 87546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ::testing::Values( 87646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "transferFromDriveToDownloads"), 87746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "transferFromDownloadsToDrive"), 87846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "transferFromSharedToDownloads"), 87946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "transferFromSharedToDrive"), 88046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "transferFromRecentToDownloads"), 88146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "transferFromRecentToDrive"), 88246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "transferFromOfflineToDownloads"), 88346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "transferFromOfflineToDrive"))); 88446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 88546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 88646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 88746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_RestorePrefs DISABLED_RestorePrefs 88846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 88946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_RestorePrefs RestorePrefs 89046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 89146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 89246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_RestorePrefs, 893eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FileManagerBrowserTest, 894868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ::testing::Values(TestParameter(IN_GUEST_MODE, "restoreSortColumn"), 895868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "restoreSortColumn"), 896868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) TestParameter(IN_GUEST_MODE, "restoreCurrentView"), 897868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "restoreCurrentView"))); 898a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 89946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 90046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 90146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_ShareDialog DISABLED_ShareDialog 90246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 90346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_ShareDialog ShareDialog 90446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 90546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 90646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_ShareDialog, 9072385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch FileManagerBrowserTest, 9082385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "shareFile"), 9092385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch TestParameter(NOT_IN_GUEST_MODE, "shareDirectory"))); 9102385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch 91146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 91246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 91346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_RestoreGeometry DISABLED_RestoreGeometry 91446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 91546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_RestoreGeometry RestoreGeometry 91646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 91746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 91846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_RestoreGeometry, 9193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) FileManagerBrowserTest, 9203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "restoreGeometry"), 9213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) TestParameter(IN_GUEST_MODE, "restoreGeometry"))); 9223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 92346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 92446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 92546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_Traverse DISABLED_Traverse 92646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 92746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_Traverse Traverse 92846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 92946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 93046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_Traverse, 93168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) FileManagerBrowserTest, 93268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) ::testing::Values(TestParameter(IN_GUEST_MODE, "traverseDownloads"), 93368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "traverseDownloads"), 93468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "traverseDrive"))); 93568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 93646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 93746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 93846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_SuggestAppDialog DISABLED_SuggestAppDialog 93946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 94046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_SuggestAppDialog SuggestAppDialog 94146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 94246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 94346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_SuggestAppDialog, 9444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FileManagerBrowserTest, 9454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "suggestAppDialog"))); 9464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 94746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 94846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 94946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_ExecuteDefaultTaskOnDownloads \ 95046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DISABLED_ExecuteDefaultTaskOnDownloads 95146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 95246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_ExecuteDefaultTaskOnDownloads ExecuteDefaultTaskOnDownloads 95346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 95446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 95546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_ExecuteDefaultTaskOnDownloads, 9565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FileManagerBrowserTest, 9575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ::testing::Values( 9585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "executeDefaultTaskOnDownloads"), 9595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) TestParameter(IN_GUEST_MODE, "executeDefaultTaskOnDownloads"))); 9605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 961f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 962f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#if !defined(NDEBUG) 963f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define MAYBE_ExecuteDefaultTaskOnDrive DISABLED_ExecuteDefaultTaskOnDrive 964f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#else 965f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define MAYBE_ExecuteDefaultTaskOnDrive ExecuteDefaultTaskOnDrive 966f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif 9675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)INSTANTIATE_TEST_CASE_P( 968f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) MAYBE_ExecuteDefaultTaskOnDrive, 969f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) FileManagerBrowserTest, 9705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ::testing::Values( 9715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "executeDefaultTaskOnDrive"))); 972f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 97346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 97446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 975f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define MAYBE_DefaultActionDialog DISABLED_DefaultActionDialog 976f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#else 977f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define MAYBE_DefaultActionDialog DefaultActionDialog 978f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif 979f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 980f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) MAYBE_DefaultActionDialog, 981f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) FileManagerBrowserTest, 982f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) ::testing::Values( 983f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "defaultActionDialogOnDownloads"), 984f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TestParameter(IN_GUEST_MODE, "defaultActionDialogOnDownloads"), 985f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "defaultActionDialogOnDrive"))); 986f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 987f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 988f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#if !defined(NDEBUG) 98946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_FolderShortcuts DISABLED_FolderShortcuts 99046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 99146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_FolderShortcuts FolderShortcuts 99246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 99346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 99446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_FolderShortcuts, 99546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) FileManagerBrowserTest, 99646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ::testing::Values( 99746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "traverseFolderShortcuts"), 99846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "addRemoveFolderShortcuts"))); 99946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 10004e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)INSTANTIATE_TEST_CASE_P( 10014e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) TabIndex, 10024e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FileManagerBrowserTest, 1003f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "searchBoxFocus"))); 1004f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 100546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 100646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 100746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_Thumbnails DISABLED_Thumbnails 100846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 100946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_Thumbnails Thumbnails 101046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 101146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 101246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_Thumbnails, 1013f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) FileManagerBrowserTest, 1014f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "thumbnailsDownloads"), 1015f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) TestParameter(IN_GUEST_MODE, "thumbnailsDownloads"))); 10164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1017f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#if !defined(NDEBUG) 1018f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define MAYBE_OpenFileDialog DISABLED_OpenFileDialog 1019f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#else 1020f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define MAYBE_OpenFileDialog OpenFileDialog 1021f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif 1022f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 1023f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) MAYBE_OpenFileDialog, 1024f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) FileManagerBrowserTest, 1025f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, 1026f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) "openFileDialogOnDownloads"), 1027f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TestParameter(IN_GUEST_MODE, 1028f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) "openFileDialogOnDownloads"), 1029f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, 1030f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) "openFileDialogOnDrive"), 1031f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TestParameter(IN_INCOGNITO, 1032f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) "openFileDialogOnDownloads"), 1033f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TestParameter(IN_INCOGNITO, 1034f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) "openFileDialogOnDrive"))); 1035f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1036f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 1037f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#if !defined(NDEBUG) 1038f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define MAYBE_CopyBetweenWindows DISABLED_CopyBetweenWindows 1039f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#else 1040f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define MAYBE_CopyBetweenWindows CopyBetweenWindows 1041f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif 1042f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 1043f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) MAYBE_CopyBetweenWindows, 1044a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) FileManagerBrowserTest, 1045a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ::testing::Values( 1046a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "copyBetweenWindowsLocalToDrive"), 1047a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "copyBetweenWindowsLocalToUsb"), 1048cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "copyBetweenWindowsUsbToDrive"), 1049cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "copyBetweenWindowsDriveToLocal"), 1050cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "copyBetweenWindowsDriveToUsb"), 1051cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "copyBetweenWindowsUsbToLocal"))); 1052a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 1053f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 1054f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#if !defined(NDEBUG) 1055f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define MAYBE_ShowGridView DISABLED_ShowGridView 1056f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#else 1057f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define MAYBE_ShowGridView ShowGridView 1058f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif 1059f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)WRAPPED_INSTANTIATE_TEST_CASE_P( 1060f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) MAYBE_ShowGridView, 1061f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) FileManagerBrowserTest, 1062f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "showGridViewDownloads"), 1063f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TestParameter(IN_GUEST_MODE, "showGridViewDownloads"), 1064f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TestParameter(NOT_IN_GUEST_MODE, "showGridViewDrive"))); 1065f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 10665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Structure to describe an account info. 10675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)struct TestAccountInfo { 10685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const char* const email; 10695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const char* const hash; 10705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const char* const display_name; 10715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}; 10725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 10735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)enum { 10745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) DUMMY_ACCOUNT_INDEX = 0, 10755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) PRIMARY_ACCOUNT_INDEX = 1, 10765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SECONDARY_ACCOUNT_INDEX_START = 2, 10775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}; 10785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 10795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)static const TestAccountInfo kTestAccounts[] = { 10805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) {"__dummy__@invalid.domain", "hashdummy", "Dummy Account"}, 10815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) {"alice@invalid.domain", "hashalice", "Alice"}, 10825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) {"bob@invalid.domain", "hashbob", "Bob"}, 10835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) {"charlie@invalid.domain", "hashcharlie", "Charlie"}, 10845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}; 10855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 10865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Test fixture class for testing multi-profile features. 10875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class MultiProfileFileManagerBrowserTest : public FileManagerBrowserTestBase { 10885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) protected: 10895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Enables multi-profiles. 10905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 10915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FileManagerBrowserTestBase::SetUpCommandLine(command_line); 10925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Logs in to a dummy profile (For making MultiProfileWindowManager happy; 10935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // browser test creates a default window and the manager tries to assign a 10945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // user for it, and we need a profile connected to a user.) 10955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) command_line->AppendSwitchASCII(chromeos::switches::kLoginUser, 10965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) kTestAccounts[DUMMY_ACCOUNT_INDEX].email); 10975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) command_line->AppendSwitchASCII(chromeos::switches::kLoginProfile, 10985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) kTestAccounts[DUMMY_ACCOUNT_INDEX].hash); 10995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 11005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 11015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Logs in to the primary profile of this test. 11025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void SetUpOnMainThread() OVERRIDE { 11035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const TestAccountInfo& info = kTestAccounts[PRIMARY_ACCOUNT_INDEX]; 11045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 11055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) AddUser(info, true); 11065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FileManagerBrowserTestBase::SetUpOnMainThread(); 11075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 11085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 11095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Loads all users to the current session and sets up necessary fields. 11105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // This is used for preparing all accounts in PRE_ test setup, and for testing 11115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // actual login behavior. 11125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void AddAllUsers() { 11135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) for (size_t i = 0; i < arraysize(kTestAccounts); ++i) 11145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) AddUser(kTestAccounts[i], i >= SECONDARY_ACCOUNT_INDEX_START); 11155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 11165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 11175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Returns primary profile (if it is already created.) 11185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual Profile* profile() OVERRIDE { 11195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) Profile* const profile = chromeos::ProfileHelper::GetProfileByUserIdHash( 11205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) kTestAccounts[PRIMARY_ACCOUNT_INDEX].hash); 11215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return profile ? profile : FileManagerBrowserTestBase::profile(); 11225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 11235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 11245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Sets the test case name (used as a function name in test_cases.js to call.) 11255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void set_test_case_name(const std::string& name) { test_case_name_ = name; } 11265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 11275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Adds a new user for testing to the current session. 11285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void AddUser(const TestAccountInfo& info, bool log_in) { 11296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) user_manager::UserManager* const user_manager = 11306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) user_manager::UserManager::Get(); 11315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) if (log_in) 11325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) user_manager->UserLoggedIn(info.email, info.hash, false); 11335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) user_manager->SaveUserDisplayName(info.email, 11345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::UTF8ToUTF16(info.display_name)); 11355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) chromeos::ProfileHelper::GetProfileByUserIdHash(info.hash)->GetPrefs()-> 11365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SetString(prefs::kGoogleServicesUsername, info.email); 11375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 11385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 11395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) private: 11405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual GuestMode GetGuestModeParam() const OVERRIDE { 11415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return NOT_IN_GUEST_MODE; 11425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 11435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 11445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual const char* GetTestCaseNameParam() const OVERRIDE { 11455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return test_case_name_.c_str(); 11465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 11475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 11485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual std::string OnMessage(const std::string& name, 11495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const base::Value* value) OVERRIDE { 11505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) if (name == "addAllUsers") { 11515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) AddAllUsers(); 11525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return "true"; 11535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } else if (name == "getWindowOwnerId") { 11545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) chrome::MultiUserWindowManager* const window_manager = 11555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) chrome::MultiUserWindowManager::GetInstance(); 11561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci extensions::AppWindowRegistry* const app_window_registry = 11571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci extensions::AppWindowRegistry::Get(profile()); 11585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) DCHECK(window_manager); 11595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) DCHECK(app_window_registry); 11605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 11611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const extensions::AppWindowRegistry::AppWindowList& list = 11625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) app_window_registry->GetAppWindowsForApp( 11635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) file_manager::kFileManagerAppId); 11645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return list.size() == 1u ? 11655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) window_manager->GetUserPresentingWindow( 11665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) list.front()->GetNativeWindow()) : ""; 11675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 11685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return FileManagerBrowserTestBase::OnMessage(name, value); 11695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 11705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 11715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::string test_case_name_; 11725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}; 11735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 117446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 117546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 117646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_PRE_BasicDownloads DISABLED_PRE_BasicDownloads 117746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_BasicDownloads DISABLED_BasicDownloads 117846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 117946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_PRE_BasicDownloads PRE_BasicDownloads 118046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_BasicDownloads BasicDownloads 118146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 118246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, 118346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_PRE_BasicDownloads) { 11845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) AddAllUsers(); 11855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 11865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 118746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, 118846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_BasicDownloads) { 11895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) AddAllUsers(); 11905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 11915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Sanity check that normal operations work in multi-profile setting as well. 11925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) set_test_case_name("keyboardCopyDownloads"); 11935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) StartTest(); 11945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 11955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 119646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Slow tests are disabled on debug build. http://crbug.com/327719 119746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !defined(NDEBUG) 119846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_PRE_BasicDrive DISABLED_PRE_BasicDrive 119946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_BasicDrive DISABLED_BasicDrive 120046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 120146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_PRE_BasicDrive PRE_BasicDrive 120246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MAYBE_BasicDrive BasicDrive 120346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 120446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, 120546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MAYBE_PRE_BasicDrive) { 12065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) AddAllUsers(); 12075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 12085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 120946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, MAYBE_BasicDrive) { 12105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) AddAllUsers(); 12115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 12125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Sanity check that normal operations work in multi-profile setting as well. 12135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) set_test_case_name("keyboardCopyDrive"); 12145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) StartTest(); 12155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 12165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 121746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)template<GuestMode M> 121846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class GalleryBrowserTestBase : public FileManagerBrowserTestBase { 121946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) public: 122046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual GuestMode GetGuestModeParam() const OVERRIDE { return M; } 122146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual const char* GetTestCaseNameParam() const OVERRIDE { 122246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return test_case_name_.c_str(); 122346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 122446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 122546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) protected: 1226f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) virtual void SetUp() OVERRIDE { 122703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) AddScript("common/test_util_common.js"); 1228f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/test_util.js"); 1229f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) FileManagerBrowserTestBase::SetUp(); 1230f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 1231f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 123246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual std::string OnMessage(const std::string& name, 123346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const base::Value* value) OVERRIDE; 123446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 123546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual const char* GetTestManifestName() const OVERRIDE { 123646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return "gallery_test_manifest.json"; 123746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 123846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 123946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void AddScript(const std::string& name) { 124046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) scripts_.AppendString( 124146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "chrome-extension://ejhcmmdhhpdhhgmifplfmjobgegbibkn/" + name); 124246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 124346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 124446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void set_test_case_name(const std::string& name) { 124546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) test_case_name_ = name; 124646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 124746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 124846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) private: 124946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::ListValue scripts_; 125046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::string test_case_name_; 125146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}; 125246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 125346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)template<GuestMode M> 125446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)std::string GalleryBrowserTestBase<M>::OnMessage(const std::string& name, 125546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const base::Value* value) { 125646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) if (name == "getScripts") { 125746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::string jsonString; 125846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::JSONWriter::Write(&scripts_, &jsonString); 125946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return jsonString; 126046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 126146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return FileManagerBrowserTestBase::OnMessage(name, value); 12625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 12635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 126446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)typedef GalleryBrowserTestBase<NOT_IN_GUEST_MODE> GalleryBrowserTest; 126546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)typedef GalleryBrowserTestBase<IN_GUEST_MODE> GalleryBrowserTestInGuestMode; 12665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 126746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, OpenSingleImageOnDownloads) { 126846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) AddScript("gallery/open_image_files.js"); 126946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) set_test_case_name("openSingleImageOnDownloads"); 127046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) StartTest(); 127146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 127246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 127346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTestInGuestMode, 127446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) OpenSingleImageOnDownloads) { 127546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) AddScript("gallery/open_image_files.js"); 127646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) set_test_case_name("openSingleImageOnDownloads"); 127746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) StartTest(); 127846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 127946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 128046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, OpenSingleImageOnDrive) { 128146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) AddScript("gallery/open_image_files.js"); 128246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) set_test_case_name("openSingleImageOnDrive"); 12835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) StartTest(); 12845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 12855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1286f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, OpenMultipleImagesOnDownloads) { 1287f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/open_image_files.js"); 1288f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("openMultipleImagesOnDownloads"); 1289f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1290f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1291f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1292f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTestInGuestMode, 1293f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) OpenMultipleImagesOnDownloads) { 1294f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/open_image_files.js"); 1295f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("openMultipleImagesOnDownloads"); 1296f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1297f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1298f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1299f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, OpenMultipleImagesOnDrive) { 1300f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/open_image_files.js"); 1301f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("openMultipleImagesOnDrive"); 1302f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1303f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1304f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1305f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, TraverseSlideImagesOnDownloads) { 1306f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/slide_mode.js"); 1307f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("traverseSlideImagesOnDownloads"); 1308f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1309f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1310f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1311f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTestInGuestMode, 1312f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TraverseSlideImagesOnDownloads) { 1313f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/slide_mode.js"); 1314f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("traverseSlideImagesOnDownloads"); 1315f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1316f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1317f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1318f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, TraverseSlideImagesOnDrive) { 1319f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/slide_mode.js"); 1320f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("traverseSlideImagesOnDrive"); 1321f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1322f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1323f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1324f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, RenameImageOnDownloads) { 1325f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/slide_mode.js"); 1326f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("renameImageOnDownloads"); 1327f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1328f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1329f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1330f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTestInGuestMode, 1331f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) RenameImageOnDownloads) { 1332f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/slide_mode.js"); 1333f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("renameImageOnDownloads"); 1334f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1335f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1336f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1337f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, RenameImageOnDrive) { 1338f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/slide_mode.js"); 1339f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("renameImageOnDrive"); 1340f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1341f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1342f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1343f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, DeleteImageOnDownloads) { 1344f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/slide_mode.js"); 1345f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("deleteImageOnDownloads"); 1346f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1347f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1348f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1349f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTestInGuestMode, 1350f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) DeleteImageOnDownloads) { 1351f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/slide_mode.js"); 1352f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("deleteImageOnDownloads"); 1353f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1354f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1355f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1356f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, DeleteImageOnDrive) { 1357f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/slide_mode.js"); 1358f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("deleteImageOnDrive"); 1359f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1360f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1361f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1362f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, RotateImageOnDownloads) { 1363f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/photo_editor.js"); 1364f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("rotateImageOnDownloads"); 1365f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1366f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1367f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1368f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTestInGuestMode, 1369f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) RotateImageOnDownloads) { 1370f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/photo_editor.js"); 1371f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("rotateImageOnDownloads"); 1372f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1373f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1374f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1375f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, RotateImageOnDrive) { 1376f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/photo_editor.js"); 1377f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("rotateImageOnDrive"); 1378f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1379f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1380f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1381f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, CropImageOnDownloads) { 1382f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/photo_editor.js"); 1383f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("cropImageOnDownloads"); 1384f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1385f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1386f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1387f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTestInGuestMode, 1388f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) CropImageOnDownloads) { 1389f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/photo_editor.js"); 1390f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("cropImageOnDownloads"); 1391f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1392f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1393f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 1394f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, CropImageOnDrive) { 1395f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddScript("gallery/photo_editor.js"); 1396f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) set_test_case_name("cropImageOnDrive"); 1397f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) StartTest(); 1398f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 1399f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 14006d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, ExposureImageOnDownloads) { 14016d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) AddScript("gallery/photo_editor.js"); 14026d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) set_test_case_name("exposureImageOnDownloads"); 14036d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) StartTest(); 14046d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)} 14056d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 14066d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTestInGuestMode, 14076d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) ExposureImageOnDownloads) { 14086d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) AddScript("gallery/photo_editor.js"); 14096d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) set_test_case_name("exposureImageOnDownloads"); 14106d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) StartTest(); 14116d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)} 14126d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 14136d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, ExposureImageOnDrive) { 14146d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) AddScript("gallery/photo_editor.js"); 14156d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) set_test_case_name("exposureImageOnDrive"); 14166d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) StartTest(); 14176d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)} 14186d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 141903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)template<GuestMode M> 142003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)class VideoPlayerBrowserTestBase : public FileManagerBrowserTestBase { 142103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) public: 142203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual GuestMode GetGuestModeParam() const OVERRIDE { return M; } 142303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual const char* GetTestCaseNameParam() const OVERRIDE { 142403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) return test_case_name_.c_str(); 142503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) } 142603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 142703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) protected: 142803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual void SetUp() OVERRIDE { 142903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) AddScript("common/test_util_common.js"); 143003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) AddScript("video_player/test_util.js"); 143103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) FileManagerBrowserTestBase::SetUp(); 143203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) } 143303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 14341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 14351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci command_line->AppendSwitch( 14361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci chromeos::switches::kEnableVideoPlayerChromecastSupport); 14371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci FileManagerBrowserTestBase::SetUpCommandLine(command_line); 14381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 14391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 144003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual std::string OnMessage(const std::string& name, 144103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const base::Value* value) OVERRIDE; 144203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 144303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual const char* GetTestManifestName() const OVERRIDE { 144403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) return "video_player_test_manifest.json"; 144503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) } 144603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 144703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) void AddScript(const std::string& name) { 144803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) scripts_.AppendString( 144903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "chrome-extension://ljoplibgfehghmibaoaepfagnmbbfiga/" + name); 145003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) } 145103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 145203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) void set_test_case_name(const std::string& name) { 145303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) test_case_name_ = name; 145403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) } 145503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 145603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) private: 145703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) base::ListValue scripts_; 145803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) std::string test_case_name_; 145903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}; 146003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 146103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)template<GuestMode M> 146203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)std::string VideoPlayerBrowserTestBase<M>::OnMessage(const std::string& name, 146303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const base::Value* value) { 146403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) if (name == "getScripts") { 146503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) std::string jsonString; 146603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) base::JSONWriter::Write(&scripts_, &jsonString); 146703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) return jsonString; 146803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) } 146903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) return FileManagerBrowserTestBase::OnMessage(name, value); 147003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 147103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 147203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)typedef VideoPlayerBrowserTestBase<NOT_IN_GUEST_MODE> VideoPlayerBrowserTest; 147303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)typedef VideoPlayerBrowserTestBase<IN_GUEST_MODE> 147403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) VideoPlayerBrowserTestInGuestMode; 147503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 147603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(VideoPlayerBrowserTest, OpenSingleVideoOnDownloads) { 147703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) AddScript("video_player/open_video_files.js"); 147803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) set_test_case_name("openSingleVideoOnDownloads"); 147903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) StartTest(); 148003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 148103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 148203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(VideoPlayerBrowserTest, OpenSingleVideoOnDrive) { 148303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) AddScript("video_player/open_video_files.js"); 148403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) set_test_case_name("openSingleVideoOnDrive"); 148503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) StartTest(); 148603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 148703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1488c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace 1489a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} // namespace file_manager 1490