• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
restart_called()58   bool restart_called() const { return restart_called_; }
remove_called()59   bool remove_called() const { return remove_called_; }
checkin_called()60   bool checkin_called() const { return checkin_called_; }
write_called()61   bool write_called() const { return write_called_; }
delete_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