Using string1 === string2 translates to identical(string1, string2) in dart, which is incorrect as it is possilbe for dart strings to have different reference.
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import {
 | |
|   AsyncTestCompleter,
 | |
|   describe,
 | |
|   it, iit,
 | |
|   ddescribe, expect,
 | |
|   inject, beforeEach,
 | |
|   SpyObject} from 'angular2/test_lib';
 | |
| 
 | |
| import {RouteRecognizer} from 'angular2/src/router/route_recognizer';
 | |
| 
 | |
| export function main() {
 | |
|   describe('RouteRecognizer', () => {
 | |
|     var recognizer;
 | |
|     var handler = {
 | |
|       'components': { 'a': 'b' }
 | |
|     };
 | |
| 
 | |
|     beforeEach(() => {
 | |
|       recognizer = new RouteRecognizer();
 | |
|     });
 | |
| 
 | |
|     it('should work with a static segment', () => {
 | |
|       recognizer.addConfig('/test', handler);
 | |
| 
 | |
|       expect(recognizer.recognize('/test')[0]).toEqual({
 | |
|         'handler': { 'components': { 'a': 'b' } },
 | |
|         'params': {},
 | |
|         'matchedUrl': '/test',
 | |
|         'unmatchedUrl': ''
 | |
|       });
 | |
|     });
 | |
| 
 | |
|     it('should work with leading slash', () => {
 | |
|       recognizer.addConfig('/', handler);
 | |
| 
 | |
|       expect(recognizer.recognize('/')[0]).toEqual({
 | |
|         'handler': { 'components': { 'a': 'b' } },
 | |
|         'params': {},
 | |
|         'matchedUrl': '/',
 | |
|         'unmatchedUrl': ''
 | |
|       });
 | |
|     });
 | |
| 
 | |
|     it('should work with a dynamic segment', () => {
 | |
|       recognizer.addConfig('/user/:name', handler);
 | |
|       expect(recognizer.recognize('/user/brian')[0]).toEqual({
 | |
|         'handler': handler,
 | |
|         'params': { 'name': 'brian' },
 | |
|         'matchedUrl': '/user/brian',
 | |
|         'unmatchedUrl': ''
 | |
|       });
 | |
|     });
 | |
| 
 | |
|     it('should allow redirects', () => {
 | |
|       recognizer.addRedirect('/a', '/b');
 | |
|       recognizer.addConfig('/b', handler);
 | |
|       var solutions = recognizer.recognize('/a');
 | |
|       expect(solutions.length).toBe(1);
 | |
|       expect(solutions[0]).toEqual({
 | |
|         'handler': handler,
 | |
|         'params': {},
 | |
|         'matchedUrl': '/b',
 | |
|         'unmatchedUrl': ''
 | |
|       });
 | |
|     });
 | |
| 
 | |
|     it('should generate URLs', () => {
 | |
|       recognizer.addConfig('/app/user/:name', handler, 'user');
 | |
|       expect(recognizer.generate('user', {'name' : 'misko'})).toEqual('/app/user/misko');
 | |
|     });
 | |
|   });
 | |
| }
 |