aboutsummaryrefslogtreecommitdiffstats
path: root/test/jqLiteSpec.js
diff options
context:
space:
mode:
authorIgor Minar2012-05-03 21:42:51 -0700
committerIgor Minar2012-05-03 23:31:28 -0700
commitee579a071a91cbade729d3cb97e097568e71f8fc (patch)
tree228eae91ae4f69d089755219d878d0a7f521a34f /test/jqLiteSpec.js
parent5df7e6fae5c1045b8d988a6fa06fef674a4527da (diff)
downloadangular.js-ee579a071a91cbade729d3cb97e097568e71f8fc.tar.bz2
feat(jqLite): support data() getter and data(obj) setter
... just like jquery does
Diffstat (limited to 'test/jqLiteSpec.js')
-rw-r--r--test/jqLiteSpec.js70
1 files changed, 57 insertions, 13 deletions
diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js
index 34b5decd..f159e08f 100644
--- a/test/jqLiteSpec.js
+++ b/test/jqLiteSpec.js
@@ -222,22 +222,23 @@ describe('jqLite', function() {
it('should set and get and remove data', function() {
var selected = jqLite([a, b, c]);
- expect(selected.data('prop', 'value')).toEqual(selected);
- expect(selected.data('prop')).toEqual('value');
- expect(jqLite(a).data('prop')).toEqual('value');
- expect(jqLite(b).data('prop')).toEqual('value');
- expect(jqLite(c).data('prop')).toEqual('value');
+ expect(selected.data('prop')).toBeUndefined();
+ expect(selected.data('prop', 'value')).toBe(selected);
+ expect(selected.data('prop')).toBe('value');
+ expect(jqLite(a).data('prop')).toBe('value');
+ expect(jqLite(b).data('prop')).toBe('value');
+ expect(jqLite(c).data('prop')).toBe('value');
jqLite(a).data('prop', 'new value');
- expect(jqLite(a).data('prop')).toEqual('new value');
- expect(selected.data('prop')).toEqual('new value');
- expect(jqLite(b).data('prop')).toEqual('value');
- expect(jqLite(c).data('prop')).toEqual('value');
+ expect(jqLite(a).data('prop')).toBe('new value');
+ expect(selected.data('prop')).toBe('new value');
+ expect(jqLite(b).data('prop')).toBe('value');
+ expect(jqLite(c).data('prop')).toBe('value');
- expect(selected.removeData('prop')).toEqual(selected);
- expect(jqLite(a).data('prop')).toEqual(undefined);
- expect(jqLite(b).data('prop')).toEqual(undefined);
- expect(jqLite(c).data('prop')).toEqual(undefined);
+ expect(selected.removeData('prop')).toBe(selected);
+ expect(jqLite(a).data('prop')).toBeUndefined();
+ expect(jqLite(b).data('prop')).toBeUndefined();
+ expect(jqLite(c).data('prop')).toBeUndefined();
});
it('should call $destroy function if element removed', function() {
@@ -247,6 +248,49 @@ describe('jqLite', function() {
element.remove();
expect(log).toEqual('destroy;');
});
+
+ it('should retrieve all data if called without params', function() {
+ var element = jqLite(a);
+ expect(element.data()).toEqual({});
+
+ element.data('foo', 'bar');
+ expect(element.data()).toEqual({foo: 'bar'});
+
+ element.data().baz = 'xxx';
+ expect(element.data()).toEqual({foo: 'bar', baz: 'xxx'});
+ });
+
+ it('should create a new data object if called without args', function() {
+ var element = jqLite(a),
+ data = element.data();
+
+ expect(data).toEqual({});
+ element.data('foo', 'bar');
+ expect(data).toEqual({foo: 'bar'});
+ });
+
+ it('should create a new data object if called with a single object arg', function() {
+ var element = jqLite(a),
+ newData = {foo: 'bar'};
+
+ element.data(newData);
+ expect(element.data()).toEqual({foo: 'bar'});
+ expect(element.data()).not.toBe(newData); // create a copy
+ });
+
+ it('should merge existing data object with a new one if called with a single object arg',
+ function() {
+ var element = jqLite(a);
+ element.data('existing', 'val');
+ expect(element.data()).toEqual({existing: 'val'});
+
+ var oldData = element.data(),
+ newData = {meLike: 'turtles', 'youLike': 'carrots'};
+
+ expect(element.data(newData)).toBe(element);
+ expect(element.data()).toEqual({meLike: 'turtles', youLike: 'carrots', existing: 'val'});
+ expect(element.data()).toBe(oldData); // merge into the old object
+ });
});