Changeset 41334
- Timestamp:
- 09/04/2017 04:00:28 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/js/wp-api.js
r41112 r41334 32 32 wp.api = wp.api || {}; 33 33 wp.api.utils = wp.api.utils || {}; 34 35 /** 36 * Determine model based on API route. 37 * 38 * @param {string} route The API route. 39 * 40 * @return {Backbone Model} The model found at given route. Undefined if not found. 41 */ 42 wp.api.getModelByRoute = function( route ) { 43 return _.find( wp.api.models, function( model ) { 44 return model.prototype.route && route === model.prototype.route.index; 45 } ); 46 }; 47 48 /** 49 * Determine collection based on API route. 50 * 51 * @param {string} route The API route. 52 * 53 * @return {Backbone Model} The collection found at given route. Undefined if not found. 54 */ 55 wp.api.getCollectionByRoute = function( route ) { 56 return _.find( wp.api.collections, function( collection ) { 57 return collection.prototype.route && route === collection.prototype.route.index; 58 } ); 59 }; 60 34 61 35 62 /** -
trunk/tests/qunit/wp-includes/js/wp-api.js
r41112 r41334 195 195 } ); 196 196 197 // Find models by route. 198 var modelsToFetchByRoute = [ 199 'Category', 200 'Comment', 201 'Media', 202 'Page', 203 'PageRevision', 204 'Post', 205 'PostRevision', 206 'Status', 207 'Tag', 208 'Taxonomy', 209 'Type', 210 'User' 211 ]; 212 213 _.each( modelsToFetchByRoute, function( model ) { 214 QUnit.test( 'Test fetching ' + model + ' by route.', function( assert ) { 215 216 var done = assert.async(); 217 218 assert.expect( 1 ); 219 220 wp.api.loadPromise.done( function() { 221 222 var theModel = wp.api.models[ model ]; 223 var route = theModel.prototype.route.index; 224 225 assert.equal( 226 wp.api.getModelByRoute( route ), 227 theModel, 228 'wp.api.models.' + model + ' found at route ' + route 229 ); 230 231 // Trigger Qunit async completion. 232 done(); 233 } ); 234 } ); 235 } ); 236 237 // Find collections by route. 238 var collectionsToFetchByRoute = [ 239 'Categories', 240 'Comments', 241 'Media', 242 'PageRevisions', 243 'Pages', 244 'PostRevisions', 245 'Posts', 246 'Statuses', 247 'Tags', 248 'Taxonomies', 249 'Types', 250 'Users' 251 ]; 252 253 _.each( collectionsToFetchByRoute, function( collection ) { 254 QUnit.test( 'Test fetching ' + collection + ' by route.', function( assert ) { 255 256 var done = assert.async(); 257 258 assert.expect( 1 ); 259 260 wp.api.loadPromise.done( function() { 261 262 var theCollection = wp.api.collections[ collection ]; 263 var route = theCollection.prototype.route.index; 264 265 assert.equal( 266 wp.api.getCollectionByRoute( route ), 267 theCollection, 268 'wp.api.collections.' + collection + ' found at ' + route 269 ); 270 271 // Trigger Qunit async completion. 272 done(); 273 } ); 274 } ); 275 } ); 276 197 277 // Test the jswidget custom namespace and endpoints. 198 278 wp.api.init( {
Note: See TracChangeset
for help on using the changeset viewer.