89 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google Inc. All Rights Reserved.
 | |
|  *
 | |
|  * Use of this source code is governed by an MIT-style license that can be
 | |
|  * found in the LICENSE file at https://angular.io/license
 | |
|  */
 | |
| 
 | |
| /*
 | |
|  * Helpers to keep tests DRY
 | |
|  */
 | |
| 
 | |
| function componentTemplatePath(name) {
 | |
|   return './components/' + dashCase(name) + '/' + dashCase(name) + '.html';
 | |
| }
 | |
| 
 | |
| function componentControllerName(name) {
 | |
|   return name[0].toUpperCase() + name.substr(1) + 'Controller';
 | |
| }
 | |
| 
 | |
| function dashCase(str) {
 | |
|   return str.replace(/([A-Z])/g, function ($1) {
 | |
|     return '-' + $1.toLowerCase();
 | |
|   });
 | |
| }
 | |
| 
 | |
| 
 | |
| function provideHelpers(fn, preInject) {
 | |
|   return function () {
 | |
|     var elt,
 | |
|         $compile,
 | |
|         $rootScope,
 | |
|         $rootRouter,
 | |
|         $templateCache,
 | |
|         $controllerProvider;
 | |
| 
 | |
|     module('ng');
 | |
|     module('ngNewRouter');
 | |
|     module(function(_$controllerProvider_) {
 | |
|       $controllerProvider = _$controllerProvider_;
 | |
|     });
 | |
| 
 | |
|     inject(function(_$compile_, _$rootScope_, _$rootRouter_, _$templateCache_) {
 | |
|       $compile = _$compile_;
 | |
|       $rootScope = _$rootScope_;
 | |
|       $rootRouter = _$rootRouter_;
 | |
|       $templateCache = _$templateCache_;
 | |
|     });
 | |
| 
 | |
|     function registerComponent(name, template, config) {
 | |
|       if (!template) {
 | |
|         template = '';
 | |
|       }
 | |
|       var ctrl;
 | |
|       if (!config) {
 | |
|         ctrl = function () {};
 | |
|       } else if (angular.isArray(config)) {
 | |
|         ctrl = function () {};
 | |
|         ctrl.$routeConfig = config;
 | |
|       } else if (typeof config === 'function') {
 | |
|         ctrl = config;
 | |
|       } else {
 | |
|         ctrl = function () {};
 | |
|         ctrl.prototype = config;
 | |
|       }
 | |
|       $controllerProvider.register(componentControllerName(name), ctrl);
 | |
|       put(name, template);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     function put (name, template) {
 | |
|       $templateCache.put(componentTemplatePath(name), [200, template, {}]);
 | |
|     }
 | |
| 
 | |
|     function compile(template) {
 | |
|       var elt = $compile('<div>' + template + '</div>')($rootScope);
 | |
|       $rootScope.$digest();
 | |
|       return elt;
 | |
|     }
 | |
| 
 | |
|     fn({
 | |
|       registerComponent: registerComponent,
 | |
|       $rootRouter: $rootRouter,
 | |
|       put: put,
 | |
|       compile: compile
 | |
|     })
 | |
|   }
 | |
| }
 |