Chromium Code Reviews| Index: chrome/test/base/scoped_bundle_swizzler_mac.h |
| diff --git a/chrome/test/base/scoped_bundle_swizzler_mac.h b/chrome/test/base/scoped_bundle_swizzler_mac.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..de84f373e7bcc23a2874b318ec7df9b7052bf9fc |
| --- /dev/null |
| +++ b/chrome/test/base/scoped_bundle_swizzler_mac.h |
| @@ -0,0 +1,32 @@ |
| +// Copyright 2015 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_TEST_BASE_SCOPED_BUNDLE_SWIZZLER_MAC_H_ |
| +#define CHROME_TEST_BASE_SCOPED_BUNDLE_SWIZZLER_MAC_H_ |
| + |
| +#include "base/macros.h" |
| +#include "base/memory/scoped_ptr.h" |
| + |
| +namespace base { |
| +namespace mac { |
| +class ScopedObjCClassSwizzler; |
| +} // namespace mac |
| +} // namespace base |
| + |
| +// Within a given scope, swizzles the implementation of +[NSBundle mainBundle] |
| +// to return a partial mock of the original bundle. This partial mock has a |
| +// custom bundle identifier. |
| +// Since this class swizzles a class method, it doesn't make sense to have more |
| +// than one instance of this class in existence at the same time. |
| +class ScopedBundleSwizzlerMac { |
|
Robert Sesek
2015/06/26 22:36:54
How does this interact with the bundle faking out
erikchen
2015/06/26 23:14:53
Bundle faking works like this:
1) All Chrome code
Robert Sesek
2015/06/30 22:21:07
OK. Can you add some commentary as to when one wou
erikchen
2015/07/06 22:00:06
Done.
|
| + public: |
| + ScopedBundleSwizzlerMac(); |
| + ~ScopedBundleSwizzlerMac(); |
| + |
| + private: |
| + scoped_ptr<base::mac::ScopedObjCClassSwizzler> class_swizzler_; |
| + DISALLOW_COPY_AND_ASSIGN(ScopedBundleSwizzlerMac); |
| +}; |
| + |
| +#endif // CHROME_TEST_BASE_SCOPED_BUNDLE_SWIZZLER_MAC_H_ |