Add ICU message format support
[chromium-blink-merge.git] / ios / public / test / test_updatable_resource_provider.mm
blob177f17bd390e0db7b2cdb389de92eae6ac2b445d
1 // Copyright 2015 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.
5 #import "ios/public/test/test_updatable_resource_provider.h"
7 #include "base/logging.h"
8 #include "base/mac/scoped_nsobject.h"
10 #pragma mark - TestUpdatabeResourceDescriptor
12 // Dummy UpdatableResourceDescriptorBridge implementation.
13 @interface TestUpdatabeResourceDescriptor
14     : NSObject<UpdatableResourceDescriptorBridge>
15 @property(nonatomic, readonly) NSURL* updateURL;
16 @property(nonatomic, copy) NSString* applicationIdentifier;
17 @property(nonatomic, copy) NSString* applicationVersion;
18 @property(nonatomic, copy) NSString* bundleResourcePath;
19 @property(nonatomic, copy) NSString* updateResourcePath;
20 @end
22 @implementation TestUpdatabeResourceDescriptor
23 @synthesize updateURL;
24 @synthesize applicationIdentifier;
25 @synthesize applicationVersion;
26 @synthesize bundleResourcePath;
27 @synthesize updateResourcePath;
29 - (void)updateCheckDidFinishWithSuccess:(BOOL)wasSuccessful {
32 - (NSString*)resourcePath {
33   return nil;
35 @end
37 #pragma mark - TestUpdatableResource
39 // Dummy UpdatableResourceDescriptorBridge implementation that simply loads data
40 // from the specified plist file.
41 @interface TestUpdatableResource : NSObject<UpdatableResourceBridge>
42 @property(nonatomic, readonly) id<UpdatableResourceDescriptorBridge> descriptor;
43 - (instancetype)initWithDelegate:(id<UpdatableResourceDelegate>)delegate
44                            plist:(NSString*)resource_identifier
45     NS_DESIGNATED_INITIALIZER;
46 - (instancetype)init NS_UNAVAILABLE;
47 @end
49 @implementation TestUpdatableResource {
50   base::scoped_nsprotocol<id<UpdatableResourceDelegate>> _delegate;
51   base::scoped_nsprotocol<id<UpdatableResourceDescriptorBridge>> _descriptor;
54 - (instancetype)initWithDelegate:(id<UpdatableResourceDelegate>)delegate
55                            plist:(NSString*)resourceIdentifier {
56   if (self = [super init]) {
57     _delegate.reset([delegate retain]);
58     _descriptor.reset([[TestUpdatabeResourceDescriptor alloc] init]);
59     DCHECK([resourceIdentifier hasSuffix:@".plist"])
60         << "TestUpdatableResource supports only the plist format";
61     [_descriptor setBundleResourcePath:resourceIdentifier];
62   }
63   return self;
66 - (instancetype)init {
67   NOTREACHED();
68   return nil;
71 - (id<UpdatableResourceDescriptorBridge>)descriptor {
72   return _descriptor.get();
75 - (id<UpdatableResourceDelegate>)delegate {
76   return _delegate;
79 - (NSDictionary*)resourceData {
80   return [NSDictionary
81       dictionaryWithContentsOfFile:[_descriptor bundleResourcePath]];
83 - (void)loadDefaults {
84   [_delegate loadDefaults:self];
87 @end
89 #pragma mark - TestUpdatableResourceProvider
91 namespace ios {
93 NSString* TestUpdatableResourceProvider::GetUpdateNotificationName() {
94   return @"ResourceUpdatedTest";
97 id<UpdatableResourceBridge>
98 TestUpdatableResourceProvider::CreateUpdatableResource(
99     NSString* resource_identifier,
100     id<UpdatableResourceDelegate> delegate) {
101   NSString* path =
102       [NSString stringWithFormat:@"%@/gm-config/ANY/%@",
103                                  [[NSBundle mainBundle] resourcePath],
104                                  resource_identifier];
105   return [[TestUpdatableResource alloc] initWithDelegate:delegate plist:path];
108 }  // namespace ios