Chromium Code Reviews| Index: chrome/browser/resources/shared/js/cr_test.html |
| diff --git a/chrome/browser/resources/shared/js/cr_test.html b/chrome/browser/resources/shared/js/cr_test.html |
| index b20281c1f8d1e74a71b76b18bc2f246bdcb0d7ba..f2047912e66a38fc141435dd041967350d4ab5b3 100644 |
| --- a/chrome/browser/resources/shared/js/cr_test.html |
| +++ b/chrome/browser/resources/shared/js/cr_test.html |
| @@ -39,22 +39,27 @@ function testDefinePropertyOnClass() { |
| cr.defineProperty(C, 'test'); |
| var obj = new C; |
| + assertEquals(undefined, obj.test); |
|
arv (Not doing code reviews)
2011/02/10 20:18:31
assertUndefined
nduca
2011/02/10 20:47:17
Done.
|
| + |
| obj.test = 1; |
| assertEquals(1, obj.test); |
| assertEquals(1, obj.test_); |
| } |
| -function testDefinePropertyWithDefault() { |
| +function testDefinePropertyWithSetter() { |
| var obj = new EventTarget; |
| - cr.defineProperty(obj, 'test', null, 1); |
| - |
| - assertEquals(1, obj.test); |
| - assertEquals(1, obj.test_); |
| - |
| + var hit = false; |
| + function onTestSet(value, oldValue) { |
| + assertEquals(this, obj); |
| + assertEquals(this.test, 2); |
|
arv (Not doing code reviews)
2011/02/10 20:18:31
wrong order... expected should be first argument
nduca
2011/02/10 20:47:17
Done.
|
| + assertEquals(oldValue, undefined); |
| + assertEquals(value, 2); |
| + hit = true; |
| + } |
| + cr.defineProperty(obj, 'test', cr.PropertyKind.JS, onTestSet); |
| obj.test = 2; |
| - assertEquals(2, obj.test); |
| - assertEquals(2, obj.test_); |
| + assertTrue(hit); |
| } |
| function testDefinePropertyEvent() { |
| @@ -82,20 +87,20 @@ function testDefinePropertyEvent() { |
| function testDefinePropertyEventWithDefault() { |
| var obj = new EventTarget; |
| - cr.defineProperty(obj, 'test', cr.PropertyKind.JS, 1); |
| + cr.defineProperty(obj, 'test', cr.PropertyKind.JS); |
| var count = 0; |
| function f(e) { |
| assertEquals('testChange', e.type); |
| assertEquals('test', e.propertyName); |
| - assertEquals(1, e.oldValue); |
| + assertEquals(undefined, e.oldValue); |
| assertEquals(2, e.newValue); |
| count++; |
| } |
| obj.addEventListener('testChange', f); |
| - obj.test = 1; |
| + obj.test = undefined; |
| assertEquals('Should not have called the property change listener', 0, count); |
| obj.test = 2; |
| @@ -119,62 +124,45 @@ function testDefinePropertyAttrOnClass() { |
| var obj = document.createElement('button'); |
| cr.defineProperty(HTMLButtonElement, 'test', cr.PropertyKind.ATTR); |
| + assertEquals(null, obj.test); |
| + |
| obj.test = 'a'; |
| assertEquals('a', obj.test); |
| assertEquals('a', obj.getAttribute('test')); |
| } |
| -function testDefinePropertyAttrWithDefault() { |
| +function testDefinePropertyAttrWithSetter() { |
| var obj = document.createElement('div'); |
| - cr.defineProperty(obj, 'test', cr.PropertyKind.ATTR, 'a'); |
| - |
| - assertEquals('a', obj.test); |
| - assertFalse(obj.hasAttribute('test')); |
| + var hit = false; |
| + function onTestSet(value, oldValue) { |
| + assertEquals(this, obj); |
| + assertEquals(oldValue, null); |
| + assertEquals(value, 'b'); |
| + assertEquals(this.test, 'b'); |
| + hit = true; |
| + } |
| + cr.defineProperty(obj, 'test', cr.PropertyKind.ATTR, onTestSet); |
| obj.test = 'b'; |
| - assertEquals('b', obj.test); |
| - assertEquals('b', obj.getAttribute('test')); |
| + assertTrue(hit); |
| } |
| function testDefinePropertyAttrEvent() { |
| var obj = document.createElement('div'); |
| cr.defineProperty(obj, 'test', cr.PropertyKind.ATTR); |
| - obj.test = 'a'; |
| var count = 0; |
| function f(e) { |
| assertEquals('testChange', e.type); |
| assertEquals('test', e.propertyName); |
| - assertEquals('a', e.oldValue); |
| + assertEquals(null, e.oldValue); |
| assertEquals('b', e.newValue); |
| count++; |
| } |
| obj.addEventListener('testChange', f); |
| - obj.test = 'b'; |
| - assertEquals('b', obj.test); |
| - assertEquals('Should have called the property change listener', 1, count); |
| - obj.test = 'b'; |
| - assertEquals(1, count); |
| -} |
| - |
| -function testDefinePropertyAttrEventWithDefault() { |
| - var obj = document.createElement('div'); |
| - cr.defineProperty(obj, 'test', cr.PropertyKind.ATTR, 'a'); |
| - |
| - var count = 0; |
| - function f(e) { |
| - assertEquals('testChange', e.type); |
| - assertEquals('test', e.propertyName); |
| - assertEquals('a', e.oldValue); |
| - assertEquals('b', e.newValue); |
| - count++; |
| - } |
| - |
| - obj.addEventListener('testChange', f); |
| - |
| - obj.test = 'a'; |
| + obj.test = null; |
| assertEquals('Should not have called the property change listener', 0, count); |
| obj.test = 'b'; |
| @@ -185,6 +173,7 @@ function testDefinePropertyAttrEventWithDefault() { |
| assertEquals(1, count); |
| } |
|
arv (Not doing code reviews)
2011/02/10 20:18:31
remove this empty line
nduca
2011/02/10 20:47:17
Done.
|
| + |
| function testDefinePropertyBoolAttr() { |
| var obj = document.createElement('div'); |
| cr.defineProperty(obj, 'test', cr.PropertyKind.BOOL_ATTR); |
| @@ -223,6 +212,21 @@ function testDefinePropertyBoolAttrEvent() { |
| assertEquals(1, count); |
| } |
| +function testDefinePropertyBoolAttrEvent() { |
| + var obj = document.createElement('div'); |
| + var hit = false; |
| + function onTestSet(value, oldValue) { |
| + assertEquals(this, obj); |
| + assertTrue(this.test); |
| + assertFalse(oldValue); |
| + assertTrue(value); |
| + hit = true; |
| + } |
| + cr.defineProperty(obj, 'test', cr.PropertyKind.BOOL_ATTR, onTestSet); |
| + obj.test = true; |
| + assertTrue(hit); |
| +} |
| + |
| function testAddSingletonGetter() { |
| function Foo() {}; |
| cr.addSingletonGetter(Foo); |