OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 var assert = requireNative('assert'); | 5 var assert = requireNative('assert'); |
6 var AssertTrue = assert.AssertTrue; | 6 var AssertTrue = assert.AssertTrue; |
7 var AssertFalse = assert.AssertFalse; | 7 var AssertFalse = assert.AssertFalse; |
8 var utils = require('utils'); | 8 var utils = require('utils'); |
9 | 9 |
10 function testSuperClass() { | 10 function testSuperClass() { |
(...skipping 11 matching lines...) Expand all Loading... |
22 } | 22 } |
23 | 23 |
24 SubClassImpl.prototype = { | 24 SubClassImpl.prototype = { |
25 __proto__: SuperClassImpl.prototype, | 25 __proto__: SuperClassImpl.prototype, |
26 attrA: 'aSub', | 26 attrA: 'aSub', |
27 attrC: 'cSub', | 27 attrC: 'cSub', |
28 func: function() { return 'overridden'; }, | 28 func: function() { return 'overridden'; }, |
29 subFunc: function() { return 'subFunc'; } | 29 subFunc: function() { return 'subFunc'; } |
30 }; | 30 }; |
31 | 31 |
32 var SuperClass = utils.expose('SuperClass', | 32 function SuperClass() { |
33 SuperClassImpl, | 33 privates(SuperClass).constructPrivate(this, arguments); |
34 { functions: ['func', 'superFunc'], | 34 } |
35 properties: ['attrA', 'attrB'] }); | 35 utils.expose(SuperClass, SuperClassImpl, { |
| 36 functions: ['func', 'superFunc'], |
| 37 properties: ['attrA', 'attrB'], |
| 38 }); |
36 | 39 |
37 var SubClass = utils.expose('SubClass', | 40 function SubClass() { |
38 SubClassImpl, | 41 privates(SubClass).constructPrivate(this, arguments); |
39 { superclass: SuperClass, | 42 } |
40 functions: ['subFunc'], | 43 utils.expose(SubClass, SubClassImpl, { |
41 properties: ['attrC'] }); | 44 superclass: SuperClass, |
| 45 functions: ['subFunc'], |
| 46 properties: ['attrC'], |
| 47 }); |
42 | 48 |
43 var supe = new SuperClass(); | 49 var supe = new SuperClass(); |
44 AssertTrue(supe.attrA == 'aSuper'); | 50 AssertTrue(supe.attrA == 'aSuper'); |
45 AssertTrue(supe.attrB == 'bSuper'); | 51 AssertTrue(supe.attrB == 'bSuper'); |
46 AssertFalse('attrC' in supe); | 52 AssertFalse('attrC' in supe); |
47 AssertTrue(supe.func() == 'func'); | 53 AssertTrue(supe.func() == 'func'); |
48 AssertTrue('superFunc' in supe); | 54 AssertTrue('superFunc' in supe); |
49 AssertTrue(supe.superFunc() == 'superFunc'); | 55 AssertTrue(supe.superFunc() == 'superFunc'); |
50 AssertFalse('subFunc' in supe); | 56 AssertFalse('subFunc' in supe); |
51 AssertTrue(supe instanceof SuperClass); | 57 AssertTrue(supe instanceof SuperClass); |
52 | 58 |
53 var sub = new SubClass(); | 59 var sub = new SubClass(); |
54 AssertTrue(sub.attrA == 'aSub'); | 60 AssertTrue(sub.attrA == 'aSub'); |
55 AssertTrue(sub.attrB == 'bSuper'); | 61 AssertTrue(sub.attrB == 'bSuper'); |
56 AssertTrue(sub.attrC == 'cSub'); | 62 AssertTrue(sub.attrC == 'cSub'); |
57 AssertTrue(sub.func() == 'overridden'); | 63 AssertTrue(sub.func() == 'overridden'); |
58 AssertTrue(sub.superFunc() == 'superFunc'); | 64 AssertTrue(sub.superFunc() == 'superFunc'); |
59 AssertTrue('subFunc' in sub); | 65 AssertTrue('subFunc' in sub); |
60 AssertTrue(sub.subFunc() == 'subFunc'); | 66 AssertTrue(sub.subFunc() == 'subFunc'); |
61 AssertTrue(sub instanceof SuperClass); | 67 AssertTrue(sub instanceof SuperClass); |
62 AssertTrue(sub instanceof SubClass); | 68 AssertTrue(sub instanceof SubClass); |
63 | 69 |
64 function SubSubClassImpl() {} | 70 function SubSubClassImpl() {} |
65 SubSubClassImpl.prototype = Object.create(SubClassImpl.prototype); | 71 SubSubClassImpl.prototype = Object.create(SubClassImpl.prototype); |
66 SubSubClassImpl.prototype.subSubFunc = function() { return 'subsub'; } | 72 SubSubClassImpl.prototype.subSubFunc = function() { return 'subsub'; }; |
67 | 73 |
68 var SubSubClass = utils.expose('SubSubClass', | 74 function SubSubClass() { |
69 SubSubClassImpl, | 75 privates(SubSubClass).constructPrivate(this, arguments); |
70 { superclass: SubClass, | 76 } |
71 functions: ['subSubFunc'] }); | 77 utils.expose(SubSubClass, SubSubClassImpl, { |
| 78 superclass: SubClass, |
| 79 functions: ['subSubFunc'], |
| 80 }); |
| 81 |
72 var subsub = new SubSubClass(); | 82 var subsub = new SubSubClass(); |
73 AssertTrue(subsub.attrA == 'aSub'); | 83 AssertTrue(subsub.attrA == 'aSub'); |
74 AssertTrue(subsub.attrB == 'bSuper'); | 84 AssertTrue(subsub.attrB == 'bSuper'); |
75 AssertTrue(subsub.attrC == 'cSub'); | 85 AssertTrue(subsub.attrC == 'cSub'); |
76 AssertTrue(subsub.func() == 'overridden'); | 86 AssertTrue(subsub.func() == 'overridden'); |
77 AssertTrue(subsub.superFunc() == 'superFunc'); | 87 AssertTrue(subsub.superFunc() == 'superFunc'); |
78 AssertTrue(subsub.subFunc() == 'subFunc'); | 88 AssertTrue(subsub.subFunc() == 'subFunc'); |
79 AssertTrue(subsub.subSubFunc() == 'subsub'); | 89 AssertTrue(subsub.subSubFunc() == 'subsub'); |
80 AssertTrue(subsub instanceof SuperClass); | 90 AssertTrue(subsub instanceof SuperClass); |
81 AssertTrue(subsub instanceof SubClass); | 91 AssertTrue(subsub instanceof SubClass); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 }).catch(function(e) { | 138 }).catch(function(e) { |
129 AssertTrue(e.message == 'error message'); | 139 AssertTrue(e.message == 'error message'); |
130 }); | 140 }); |
131 } | 141 } |
132 | 142 |
133 exports.testSuperClass = testSuperClass; | 143 exports.testSuperClass = testSuperClass; |
134 exports.testPromiseNoResult = testPromiseNoResult; | 144 exports.testPromiseNoResult = testPromiseNoResult; |
135 exports.testPromiseOneResult = testPromiseOneResult; | 145 exports.testPromiseOneResult = testPromiseOneResult; |
136 exports.testPromiseTwoResults = testPromiseTwoResults; | 146 exports.testPromiseTwoResults = testPromiseTwoResults; |
137 exports.testPromiseError = testPromiseError; | 147 exports.testPromiseError = testPromiseError; |
OLD | NEW |