aboutsummaryrefslogtreecommitdiffstats
path: root/test/ScenarioSpec.js
diff options
context:
space:
mode:
authorMisko Hevery2010-01-23 15:54:58 -0800
committerMisko Hevery2010-01-23 15:54:58 -0800
commit4460328bc1173f5d97fb4ff54edc041968486fce (patch)
tree40e18a175f7f1ae104aa56347fe5038526374ed8 /test/ScenarioSpec.js
parente41ee88ef85986dcd0fea23fefcc57d89cee5c0b (diff)
downloadangular.js-4460328bc1173f5d97fb4ff54edc041968486fce.tar.bz2
lots of cleanup to get it ready for OS
Diffstat (limited to 'test/ScenarioSpec.js')
-rw-r--r--test/ScenarioSpec.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/test/ScenarioSpec.js b/test/ScenarioSpec.js
new file mode 100644
index 00000000..c3c29f02
--- /dev/null
+++ b/test/ScenarioSpec.js
@@ -0,0 +1,66 @@
+describe("ScenarioSpec: Compilation", function(){
+ it("should compile dom node and return scope", function(){
+ var node = $('<div ng-init="a=1">{{b=a+1}}</div>')[0];
+ var scope = angular.compile(node);
+ scope.init();
+ expect(scope.get('a')).toEqual(1);
+ expect(scope.get('b')).toEqual(2);
+ });
+
+ it("should compile jQuery node and return scope", function(){
+ var scope = angular.compile($('<div>{{a=123}}</div>')).init();
+ expect($(scope.element).text()).toEqual('123');
+ });
+
+ it("should compile text node and return scope", function(){
+ var scope = angular.compile('<div>{{a=123}}</div>').init();
+ expect($(scope.element).text()).toEqual('123');
+ });
+});
+
+describe("ScenarioSpec: Scope", function(){
+ it("should have set, get, eval, init, updateView methods", function(){
+ var scope = angular.compile('<div>{{a}}</div>').init();
+ expect(scope.set("a", 2)).toEqual(2);
+ expect(scope.get("a")).toEqual(2);
+ expect(scope.eval("a=3")).toEqual(3);
+ scope.updateView();
+ expect($(scope.element).text()).toEqual('3');
+ });
+
+ it("should have config", function(){
+ expect(angular.compile('', {a:'b'}).config.a).toEqual('b');
+ });
+
+ it("should have $ objects", function(){
+ var scope = angular.compile('<div></div>', {a:"b"});
+ expect(scope.get('$anchor')).toBeDefined();
+ expect(scope.get('$updateView')).toBeDefined();
+ expect(scope.get('$config')).toBeDefined();
+ expect(scope.get('$config.a')).toEqual("b");
+ expect(scope.get('$datastore')).toBeDefined();
+ });
+});
+
+describe("ScenarioSpec: configuration", function(){
+ it("should take location object", function(){
+ var url = "http://server/#book=moby";
+ var onUrlChange;
+ var location = {
+ listen:function(fn){onUrlChange=fn;},
+ set:function(u){url = u;},
+ get:function(){return url;}
+ };
+ var scope = angular.compile("<div>{{$anchor}}</div>", {location:location});
+ var $anchor = scope.get('$anchor');
+ expect($anchor.book).toBeUndefined();
+ expect(onUrlChange).toBeUndefined();
+ scope.init();
+ expect($anchor.book).toEqual('moby');
+ expect(onUrlChange).toBeDefined();
+
+ url = "http://server/#book=none";
+ onUrlChange();
+ expect($anchor.book).toEqual('none');
+ });
+});