| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  | import { | 
					
						
							|  |  |  |   beforeEach, | 
					
						
							|  |  |  |   ddescribe, | 
					
						
							|  |  |  |   describe, | 
					
						
							|  |  |  |   expect, | 
					
						
							|  |  |  |   iit, | 
					
						
							|  |  |  |   inject, | 
					
						
							|  |  |  |   it, | 
					
						
							|  |  |  |   xit | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | } from '@angular/core/testing/testing_internal'; | 
					
						
							|  |  |  | import {URLSearchParams} from '../src/url_search_params'; | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | export function main() { | 
					
						
							|  |  |  |   describe('URLSearchParams', () => { | 
					
						
							|  |  |  |     it('should conform to spec', () => { | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |       var paramsString = "q=URLUtils.searchParams&topic=api"; | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  |       var searchParams = new URLSearchParams(paramsString); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       // Tests borrowed from example at
 | 
					
						
							|  |  |  |       // https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
 | 
					
						
							|  |  |  |       // Compliant with spec described at https://url.spec.whatwg.org/#urlsearchparams
 | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |       expect(searchParams.has("topic")).toBe(true); | 
					
						
							|  |  |  |       expect(searchParams.has("foo")).toBe(false); | 
					
						
							|  |  |  |       expect(searchParams.get("topic")).toEqual("api"); | 
					
						
							|  |  |  |       expect(searchParams.getAll("topic")).toEqual(["api"]); | 
					
						
							|  |  |  |       expect(searchParams.get("foo")).toBe(null); | 
					
						
							|  |  |  |       searchParams.append("topic", "webdev"); | 
					
						
							|  |  |  |       expect(searchParams.getAll("topic")).toEqual(["api", "webdev"]); | 
					
						
							|  |  |  |       expect(searchParams.toString()).toEqual("q=URLUtils.searchParams&topic=api&topic=webdev"); | 
					
						
							|  |  |  |       searchParams.delete("topic"); | 
					
						
							|  |  |  |       expect(searchParams.toString()).toEqual("q=URLUtils.searchParams"); | 
					
						
							| 
									
										
										
										
											2015-07-13 14:47:10 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |       // Test default constructor
 | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |       expect(new URLSearchParams().toString()).toBe(""); | 
					
						
							| 
									
										
										
										
											2015-07-13 14:47:10 -04:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it('should support map-like merging operation via setAll()', () => { | 
					
						
							|  |  |  |       var mapA = new URLSearchParams('a=1&a=2&a=3&c=8'); | 
					
						
							|  |  |  |       var mapB = new URLSearchParams('a=4&a=5&a=6&b=7'); | 
					
						
							|  |  |  |       mapA.setAll(mapB); | 
					
						
							|  |  |  |       expect(mapA.has('a')).toBe(true); | 
					
						
							|  |  |  |       expect(mapA.has('b')).toBe(true); | 
					
						
							|  |  |  |       expect(mapA.has('c')).toBe(true); | 
					
						
							|  |  |  |       expect(mapA.getAll('a')).toEqual(['4']); | 
					
						
							|  |  |  |       expect(mapA.getAll('b')).toEqual(['7']); | 
					
						
							|  |  |  |       expect(mapA.getAll('c')).toEqual(['8']); | 
					
						
							|  |  |  |       expect(mapA.toString()).toEqual('a=4&c=8&b=7'); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it('should support multimap-like merging operation via appendAll()', () => { | 
					
						
							|  |  |  |       var mapA = new URLSearchParams('a=1&a=2&a=3&c=8'); | 
					
						
							|  |  |  |       var mapB = new URLSearchParams('a=4&a=5&a=6&b=7'); | 
					
						
							|  |  |  |       mapA.appendAll(mapB); | 
					
						
							|  |  |  |       expect(mapA.has('a')).toBe(true); | 
					
						
							|  |  |  |       expect(mapA.has('b')).toBe(true); | 
					
						
							|  |  |  |       expect(mapA.has('c')).toBe(true); | 
					
						
							|  |  |  |       expect(mapA.getAll('a')).toEqual(['1', '2', '3', '4', '5', '6']); | 
					
						
							|  |  |  |       expect(mapA.getAll('b')).toEqual(['7']); | 
					
						
							|  |  |  |       expect(mapA.getAll('c')).toEqual(['8']); | 
					
						
							|  |  |  |       expect(mapA.toString()).toEqual('a=1&a=2&a=3&a=4&a=5&a=6&c=8&b=7'); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it('should support multimap-like merging operation via replaceAll()', () => { | 
					
						
							|  |  |  |       var mapA = new URLSearchParams('a=1&a=2&a=3&c=8'); | 
					
						
							|  |  |  |       var mapB = new URLSearchParams('a=4&a=5&a=6&b=7'); | 
					
						
							|  |  |  |       mapA.replaceAll(mapB); | 
					
						
							|  |  |  |       expect(mapA.has('a')).toBe(true); | 
					
						
							|  |  |  |       expect(mapA.has('b')).toBe(true); | 
					
						
							|  |  |  |       expect(mapA.has('c')).toBe(true); | 
					
						
							|  |  |  |       expect(mapA.getAll('a')).toEqual(['4', '5', '6']); | 
					
						
							|  |  |  |       expect(mapA.getAll('b')).toEqual(['7']); | 
					
						
							|  |  |  |       expect(mapA.getAll('c')).toEqual(['8']); | 
					
						
							|  |  |  |       expect(mapA.toString()).toEqual('a=4&a=5&a=6&c=8&b=7'); | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | } |