// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_COMMON_MAC_MOCK_LAUNCHD_H_ #define CHROME_COMMON_MAC_MOCK_LAUNCHD_H_ #include <launch.h> #include <string> #include "base/files/file_path.h" #include "base/mac/scoped_cftyperef.h" #include "base/memory/scoped_ptr.h" #include "chrome/common/mac/launchd.h" #include "chrome/common/multi_process_lock.h" namespace base { class MessageLoop; } // TODO(dmaclach): Write this in terms of a real mock. // http://crbug.com/76923 class MockLaunchd : public Launchd { public: static bool MakeABundle(const base::FilePath& dst, const std::string& name, base::FilePath* bundle_root, base::FilePath* executable); MockLaunchd(const base::FilePath& file, base::MessageLoop* loop, bool create_socket, bool as_service); virtual ~MockLaunchd(); virtual CFDictionaryRef CopyExports() OVERRIDE; virtual CFDictionaryRef CopyJobDictionary(CFStringRef label) OVERRIDE; virtual CFDictionaryRef CopyDictionaryByCheckingIn(CFErrorRef* error) OVERRIDE; virtual bool RemoveJob(CFStringRef label, CFErrorRef* error) OVERRIDE; virtual bool RestartJob(Domain domain, Type type, CFStringRef name, CFStringRef session_type) OVERRIDE; virtual CFMutableDictionaryRef CreatePlistFromFile( Domain domain, Type type, CFStringRef name) OVERRIDE; virtual bool WritePlistToFile(Domain domain, Type type, CFStringRef name, CFDictionaryRef dict) OVERRIDE; virtual bool DeletePlist(Domain domain, Type type, CFStringRef name) OVERRIDE; void SignalReady(); bool restart_called() const { return restart_called_; } bool remove_called() const { return remove_called_; } bool checkin_called() const { return checkin_called_; } bool write_called() const { return write_called_; } bool delete_called() const { return delete_called_; } private: base::FilePath file_; std::string pipe_name_; base::MessageLoop* message_loop_; scoped_ptr<MultiProcessLock> running_lock_; bool create_socket_; bool as_service_; bool restart_called_; bool remove_called_; bool checkin_called_; bool write_called_; bool delete_called_; }; #endif // CHROME_COMMON_MAC_MOCK_LAUNCHD_H_