12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <map> 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/extensions/extension_apitest.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/common/chrome_switches.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using extensions::Extension; 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using extensions::Manifest; 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class DeveloperPrivateApiTest : public ExtensionApiTest { 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void LoadExtensions() { 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::FilePath base_dir = test_data_dir_.AppendASCII("developer"); 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadNamedExtension(base_dir, "hosted_app"); 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) protected: 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void LoadNamedExtension(const base::FilePath& path, 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& name) { 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const Extension* extension = LoadExtension(path.AppendASCII(name)); 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_TRUE(extension); 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) extension_name_to_ids_[name] = extension->id(); 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void InstallNamedExtension(const base::FilePath& path, 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& name, 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Manifest::Location install_source) { 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const Extension* extension = InstallExtension(path.AppendASCII(name), 1, 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) install_source); 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_TRUE(extension); 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) extension_name_to_ids_[name] = extension->id(); 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::map<std::string, std::string> extension_name_to_ids_; 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(DeveloperPrivateApiTest, Basics) { 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadExtensions(); 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::FilePath basedir = test_data_dir_.AppendASCII("developer"); 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) InstallNamedExtension(basedir, "packaged_app", Manifest::INTERNAL); 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) InstallNamedExtension(basedir, "simple_extension", Manifest::INTERNAL); 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ASSERT_TRUE(RunPlatformAppTestWithFlags( 495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) "developer/test", kFlagLoadAsComponent)); 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 51