Home | History | Annotate | Download | only in mac
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_COMMON_MAC_MOCK_LAUNCHD_H_
      6 #define CHROME_COMMON_MAC_MOCK_LAUNCHD_H_
      7 
      8 #include <launch.h>
      9 
     10 #include <string>
     11 
     12 #include "base/files/file_path.h"
     13 #include "base/mac/scoped_cftyperef.h"
     14 #include "base/memory/scoped_ptr.h"
     15 #include "chrome/common/mac/launchd.h"
     16 #include "chrome/common/multi_process_lock.h"
     17 
     18 namespace base {
     19 class MessageLoop;
     20 }
     21 
     22 // TODO(dmaclach): Write this in terms of a real mock.
     23 // http://crbug.com/76923
     24 class MockLaunchd : public Launchd {
     25  public:
     26   static bool MakeABundle(const base::FilePath& dst,
     27                           const std::string& name,
     28                           base::FilePath* bundle_root,
     29                           base::FilePath* executable);
     30 
     31   MockLaunchd(const base::FilePath& file, base::MessageLoop* loop,
     32               bool create_socket, bool as_service);
     33   virtual ~MockLaunchd();
     34 
     35   virtual CFDictionaryRef CopyExports() OVERRIDE;
     36   virtual CFDictionaryRef CopyJobDictionary(CFStringRef label) OVERRIDE;
     37   virtual CFDictionaryRef CopyDictionaryByCheckingIn(CFErrorRef* error)
     38       OVERRIDE;
     39   virtual bool RemoveJob(CFStringRef label, CFErrorRef* error) OVERRIDE;
     40   virtual bool RestartJob(Domain domain,
     41                           Type type,
     42                           CFStringRef name,
     43                           CFStringRef session_type) OVERRIDE;
     44   virtual CFMutableDictionaryRef CreatePlistFromFile(
     45       Domain domain,
     46       Type type,
     47       CFStringRef name) OVERRIDE;
     48   virtual bool WritePlistToFile(Domain domain,
     49                                 Type type,
     50                                 CFStringRef name,
     51                                 CFDictionaryRef dict) OVERRIDE;
     52   virtual bool DeletePlist(Domain domain,
     53                            Type type,
     54                            CFStringRef name) OVERRIDE;
     55 
     56   void SignalReady();
     57 
     58   bool restart_called() const { return restart_called_; }
     59   bool remove_called() const { return remove_called_; }
     60   bool checkin_called() const { return checkin_called_; }
     61   bool write_called() const { return write_called_; }
     62   bool delete_called() const { return delete_called_; }
     63 
     64  private:
     65   base::FilePath file_;
     66   std::string pipe_name_;
     67   base::MessageLoop* message_loop_;
     68   scoped_ptr<MultiProcessLock> running_lock_;
     69   bool create_socket_;
     70   bool as_service_;
     71   bool restart_called_;
     72   bool remove_called_;
     73   bool checkin_called_;
     74   bool write_called_;
     75   bool delete_called_;
     76 };
     77 
     78 #endif  // CHROME_COMMON_MAC_MOCK_LAUNCHD_H_
     79