Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(167)

Side by Side Diff: chromecast/base/device_capabilities.h

Issue 1401993002: Refactoring DeviceCapabilities unit test. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Unregister() does not remove capability. Register() does not take initial value. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chromecast/base/device_capabilities_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROMECAST_BASE_DEVICE_CAPABILITIES_H_ 5 #ifndef CHROMECAST_BASE_DEVICE_CAPABILITIES_H_
6 #define CHROMECAST_BASE_DEVICE_CAPABILITIES_H_ 6 #define CHROMECAST_BASE_DEVICE_CAPABILITIES_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 // The instance should be created early enough for all managers to register 97 // The instance should be created early enough for all managers to register
98 // themselves, and then live long enough for all managers to unregister. 98 // themselves, and then live long enough for all managers to unregister.
99 static scoped_ptr<DeviceCapabilities> Create(); 99 static scoped_ptr<DeviceCapabilities> Create();
100 // Creates an instance where all the default capabilities are initialized 100 // Creates an instance where all the default capabilities are initialized
101 // to a predefined default value, and no Validators are registered. For use 101 // to a predefined default value, and no Validators are registered. For use
102 // only in unit tests. 102 // only in unit tests.
103 static scoped_ptr<DeviceCapabilities> CreateForTesting(); 103 static scoped_ptr<DeviceCapabilities> CreateForTesting();
104 104
105 // Registers a Validator for a capability. A given key must only be 105 // Registers a Validator for a capability. A given key must only be
106 // registered once, and must be unregistered before calling Register() again. 106 // registered once, and must be unregistered before calling Register() again.
107 // The capability also gets added to the class with an initial value passed 107 // If the capability has a value of Dictionary type, |key| must be just
108 // in. If the capability has a value of Dictionary type, |key| must be just
109 // the capability's top-level key and not include path expansions to levels 108 // the capability's top-level key and not include path expansions to levels
110 // farther down. For example, "foo" is a valid value for |key|, but "foo.bar" 109 // farther down. For example, "foo" is a valid value for |key|, but "foo.bar"
111 // is not. Note that if "foo.bar" is updated in SetCapability(), the 110 // is not. Note that if "foo.bar" is updated in SetCapability(), the
112 // Validate() method for "foo"'s Validator will be called, with a |path| of 111 // Validate() method for "foo"'s Validator will be called, with a |path| of
113 // "foo.bar". Both Register() and Unregister() must be called on cast 112 // "foo.bar". Both Register() and Unregister() must be called on cast
114 // receiver main thread; the Validator provided will also be called on cast 113 // receiver main thread; the Validator provided will also be called on cast
115 // receiver main thread. 114 // receiver main thread. Note that this method does not add or modify
115 // the capability. To do this, SetCapability() should be called, or
116 // Validators can call SetValidatedValue().
116 virtual void Register(const std::string& key, 117 virtual void Register(const std::string& key,
117 scoped_ptr<base::Value> init_value,
118 Validator* validator) = 0; 118 Validator* validator) = 0;
119 // Unregisters Validator for |key| and removes capability. |validator| 119 // Unregisters Validator for |key|. |validator| argument must match
120 // argument must match |validator| argument that was passed in to Register() 120 // |validator| argument that was passed in to Register() for |key|. Note that
121 // for |key|. 121 // the capability and its value remain untouched.
122 virtual void Unregister(const std::string& key, 122 virtual void Unregister(const std::string& key,
123 const Validator* validator) = 0; 123 const Validator* validator) = 0;
124 // Gets the Validator currently registered for |key|. Returns nullptr if
125 // no Validator is registered.
126 virtual Validator* GetValidator(const std::string& key) const = 0;
124 127
125 // Accessors for default capabilities. Note that the capability must be added 128 // Accessors for default capabilities. Note that the capability must be added
126 // through Register() or SetCapability() before accessors are called. 129 // through SetCapability() or SetValidatedValue() (for Validators) before
130 // accessors are called.
127 virtual bool BluetoothSupported() const = 0; 131 virtual bool BluetoothSupported() const = 0;
128 virtual bool DisplaySupported() const = 0; 132 virtual bool DisplaySupported() const = 0;
129 133
130 // Gets the value of |path|. If capability at |path| does not exist, 134 // Gets the value of |path|. If capability at |path| does not exist,
131 // |out_value| remains untouched. Returns true if the capability has been 135 // |out_value| remains untouched. Returns true if the capability has been
132 // successfully retrieved. Note that this does NOT perform a deep copy, and 136 // successfully retrieved. Note that this does NOT perform a deep copy, and
133 // DeviceCapabilities still owns the memory returned through |out_value|. 137 // DeviceCapabilities still owns the memory returned through |out_value|.
134 virtual bool GetCapability(const std::string& path, 138 virtual bool GetCapability(const std::string& path,
135 const base::Value** out_value) const = 0; 139 const base::Value** out_value) const = 0;
136 140
(...skipping 28 matching lines...) Expand all
165 // Does actual internal update of |path| to |new_value|. 169 // Does actual internal update of |path| to |new_value|.
166 virtual void SetValidatedValueInternal(const std::string& path, 170 virtual void SetValidatedValueInternal(const std::string& path,
167 scoped_ptr<base::Value> new_value) = 0; 171 scoped_ptr<base::Value> new_value) = 0;
168 172
169 DISALLOW_COPY_AND_ASSIGN(DeviceCapabilities); 173 DISALLOW_COPY_AND_ASSIGN(DeviceCapabilities);
170 }; 174 };
171 175
172 } // namespace chromecast 176 } // namespace chromecast
173 177
174 #endif // CHROMECAST_BASE_DEVICE_CAPABILITIES_H_ 178 #endif // CHROMECAST_BASE_DEVICE_CAPABILITIES_H_
OLDNEW
« no previous file with comments | « no previous file | chromecast/base/device_capabilities_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698