aboutsummaryrefslogtreecommitdiffstats
path: root/test/servicesSpec.js
diff options
context:
space:
mode:
authorMisko Hevery2010-04-16 14:01:29 -0700
committerMisko Hevery2010-04-16 14:01:29 -0700
commitdeb86fe357a901889bc4289087f0b9e69cb8a302 (patch)
treefce4db8501a6c24430d611c95a4aa001119c7b89 /test/servicesSpec.js
parent70e401ef100614295fc808e32f0142f07c315461 (diff)
downloadangular.js-deb86fe357a901889bc4289087f0b9e69cb8a302.tar.bz2
lots of small fixes
Diffstat (limited to 'test/servicesSpec.js')
-rw-r--r--test/servicesSpec.js113
1 files changed, 65 insertions, 48 deletions
diff --git a/test/servicesSpec.js b/test/servicesSpec.js
index 715a232e..f917f968 100644
--- a/test/servicesSpec.js
+++ b/test/servicesSpec.js
@@ -9,53 +9,6 @@ describe("services", function(){
expect(scope.$window).toEqual(window);
});
- it("should inject $location", function(){
- scope.$location.parse('http://host:123/p/a/t/h.html?query=value#path?key=value');
- expect(scope.$location.href).toEqual("http://host:123/p/a/t/h.html?query=value#path?key=value");
- expect(scope.$location.protocol).toEqual("http");
- expect(scope.$location.host).toEqual("host");
- expect(scope.$location.port).toEqual("123");
- expect(scope.$location.path).toEqual("/p/a/t/h.html");
- expect(scope.$location.search).toEqual({query:'value'});
- expect(scope.$location.hash).toEqual('path?key=value');
- expect(scope.$location.hashPath).toEqual('path');
- expect(scope.$location.hashSearch).toEqual({key:'value'});
-
- scope.$location.hashPath = 'page=http://path';
- scope.$location.hashSearch = {k:'a=b'};
-
- expect(scope.$location.toString()).toEqual('http://host:123/p/a/t/h.html?query=value#page=http://path?k=a%3Db');
- });
-
- it('should parse file://', function(){
- scope.$location.parse('file:///Users/Shared/misko/work/angular.js/scenario/widgets.html');
- expect(scope.$location.href).toEqual("file:///Users/Shared/misko/work/angular.js/scenario/widgets.html");
- expect(scope.$location.protocol).toEqual("file");
- expect(scope.$location.host).toEqual("");
- expect(scope.$location.port).toEqual(null);
- expect(scope.$location.path).toEqual("/Users/Shared/misko/work/angular.js/scenario/widgets.html");
- expect(scope.$location.search).toEqual({});
- expect(scope.$location.hash).toEqual('');
- expect(scope.$location.hashPath).toEqual('');
- expect(scope.$location.hashSearch).toEqual({});
-
- expect(scope.$location.toString()).toEqual('file:///Users/Shared/misko/work/angular.js/scenario/widgets.html#');
- });
-
- it('should update url on hash change', function(){
- scope.$location.parse('http://server/#path?a=b');
- scope.$location.hash = '';
- expect(scope.$location.toString()).toEqual('http://server/#');
- expect(scope.$location.hashPath).toEqual('');
- });
-
- it('should update url on hashPath change', function(){
- scope.$location.parse('http://server/#path?a=b');
- scope.$location.hashPath = '';
- expect(scope.$location.toString()).toEqual('http://server/#?a=b');
- expect(scope.$location.hash).toEqual('?a=b');
- });
-
xit('should add stylesheets', function(){
scope.$document = {
getElementsByTagName: function(name){
@@ -64,9 +17,71 @@ describe("services", function(){
}
};
scope.$document.addStyleSheet('css/angular.css');
-
});
+ describe("$location", function(){
+ it("should inject $location", function(){
+ scope.$location.parse('http://host:123/p/a/t/h.html?query=value#path?key=value');
+ expect(scope.$location.href).toEqual("http://host:123/p/a/t/h.html?query=value#path?key=value");
+ expect(scope.$location.protocol).toEqual("http");
+ expect(scope.$location.host).toEqual("host");
+ expect(scope.$location.port).toEqual("123");
+ expect(scope.$location.path).toEqual("/p/a/t/h.html");
+ expect(scope.$location.search).toEqual({query:'value'});
+ expect(scope.$location.hash).toEqual('path?key=value');
+ expect(scope.$location.hashPath).toEqual('path');
+ expect(scope.$location.hashSearch).toEqual({key:'value'});
+
+ scope.$location.hashPath = 'page=http://path';
+ scope.$location.hashSearch = {k:'a=b'};
+
+ expect(scope.$location.toString()).toEqual('http://host:123/p/a/t/h.html?query=value#page=http://path?k=a%3Db');
+ });
+
+ it('should parse file://', function(){
+ scope.$location.parse('file:///Users/Shared/misko/work/angular.js/scenario/widgets.html');
+ expect(scope.$location.href).toEqual("file:///Users/Shared/misko/work/angular.js/scenario/widgets.html");
+ expect(scope.$location.protocol).toEqual("file");
+ expect(scope.$location.host).toEqual("");
+ expect(scope.$location.port).toEqual(null);
+ expect(scope.$location.path).toEqual("/Users/Shared/misko/work/angular.js/scenario/widgets.html");
+ expect(scope.$location.search).toEqual({});
+ expect(scope.$location.hash).toEqual('');
+ expect(scope.$location.hashPath).toEqual('');
+ expect(scope.$location.hashSearch).toEqual({});
+
+ expect(scope.$location.toString()).toEqual('file:///Users/Shared/misko/work/angular.js/scenario/widgets.html#');
+ });
+
+ it('should update url on hash change', function(){
+ scope.$location.parse('http://server/#path?a=b');
+ scope.$location.hash = '';
+ expect(scope.$location.toString()).toEqual('http://server/#');
+ expect(scope.$location.hashPath).toEqual('');
+ });
+
+ it('should update url on hashPath change', function(){
+ scope.$location.parse('http://server/#path?a=b');
+ scope.$location.hashPath = '';
+ expect(scope.$location.toString()).toEqual('http://server/#?a=b');
+ expect(scope.$location.hash).toEqual('?a=b');
+ });
+
+ it('should update hash before any processing', function(){
+ var scope = compile('<div>');
+ var log = '';
+ scope.$watch('$location.hash', function(){
+ log += this.$location.hashPath + ';';
+ });
+ expect(log).toEqual(';');
+
+ log = '';
+ scope.$location.hash = '/abc';
+ scope.$eval();
+ expect(log).toEqual('/abc;');
+ });
+
+ });
});
describe("service $invalidWidgets", function(){
@@ -135,5 +150,7 @@ describe("service $route", function(){
expect(log).toEqual('onChange();');
expect(scope.$route.current).toEqual(null);
+ scope.$route.when('/NONE', {template:'instant update'});
+ expect(scope.$route.current.template).toEqual('instant update');
});
});