From 4460328bc1173f5d97fb4ff54edc041968486fce Mon Sep 17 00:00:00 2001
From: Misko Hevery
Date: Sat, 23 Jan 2010 15:54:58 -0800
Subject: lots of cleanup to get it ready for OS
---
test/ScenarioSpec.js | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 66 insertions(+)
create mode 100644 test/ScenarioSpec.js
(limited to 'test/ScenarioSpec.js')
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 = $('
{{b=a+1}}
')[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($('{{a=123}}
')).init();
+ expect($(scope.element).text()).toEqual('123');
+ });
+
+ it("should compile text node and return scope", function(){
+ var scope = angular.compile('{{a=123}}
').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('{{a}}
').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('', {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("{{$anchor}}
", {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');
+ });
+});
--
cgit v1.2.3