| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 // Mock out the support module to avoid depending on the message loop. | 5 // Mock out the support module to avoid depending on the message loop. |
| 6 define("mojo/public/js/bindings/support", ["timer"], function(timer) { | 6 define("mojo/public/js/bindings/support", ["timer"], function(timer) { |
| 7 var waitingCallbacks = []; | 7 var waitingCallbacks = []; |
| 8 | 8 |
| 9 function WaitCookie(id) { | 9 function WaitCookie(id) { |
| 10 this.id = id; | 10 this.id = id; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 threading.quit(); | 78 threading.quit(); |
| 79 }.bind(this)).catch(function(e) { | 79 }.bind(this)).catch(function(e) { |
| 80 this.result = "FAIL: " + (e.stack || e); | 80 this.result = "FAIL: " + (e.stack || e); |
| 81 threading.quit(); | 81 threading.quit(); |
| 82 }.bind(this)); | 82 }.bind(this)); |
| 83 | 83 |
| 84 function testClientServer() { | 84 function testClientServer() { |
| 85 var receivedFrobinate = false; | 85 var receivedFrobinate = false; |
| 86 var receivedDidFrobinate = false; | 86 var receivedDidFrobinate = false; |
| 87 | 87 |
| 88 // ServiceImpl ------------------------------------------------------------- | 88 // ServiceImpl ------------------------------------------------------------ |
| 89 | 89 |
| 90 function ServiceImpl(peer) { | 90 function ServiceImpl(peer) { |
| 91 this.peer = peer; | 91 this.peer = peer; |
| 92 } | 92 } |
| 93 | 93 |
| 94 ServiceImpl.prototype = Object.create(sample_service.ServiceStub.prototype); | 94 ServiceImpl.prototype = Object.create( |
| 95 sample_service.Service.stubClass.prototype); |
| 95 | 96 |
| 96 ServiceImpl.prototype.frobinate = function(foo, baz, port) { | 97 ServiceImpl.prototype.frobinate = function(foo, baz, port) { |
| 97 receivedFrobinate = true; | 98 receivedFrobinate = true; |
| 98 | 99 |
| 99 expect(foo.name).toBe("Example name"); | 100 expect(foo.name).toBe("Example name"); |
| 100 expect(baz).toBeTruthy(); | 101 expect(baz).toBeTruthy(); |
| 101 expect(core.close(port)).toBe(core.RESULT_OK); | 102 expect(core.close(port)).toBe(core.RESULT_OK); |
| 102 | 103 |
| 103 this.peer.didFrobinate(42); | 104 this.peer.didFrobinate(42); |
| 104 }; | 105 }; |
| 105 | 106 |
| 106 // ServiceImpl ------------------------------------------------------------- | 107 // ServiceClientImpl ------------------------------------------------------ |
| 107 | 108 |
| 108 function ServiceClientImpl(peer) { | 109 function ServiceClientImpl(peer) { |
| 109 this.peer = peer; | 110 this.peer = peer; |
| 110 } | 111 } |
| 111 | 112 |
| 112 ServiceClientImpl.prototype = | 113 ServiceClientImpl.prototype = |
| 113 Object.create(sample_service.ServiceClientStub.prototype); | 114 Object.create(sample_service.ServiceClient.stubClass.prototype); |
| 114 | 115 |
| 115 ServiceClientImpl.prototype.didFrobinate = function(result) { | 116 ServiceClientImpl.prototype.didFrobinate = function(result) { |
| 116 receivedDidFrobinate = true; | 117 receivedDidFrobinate = true; |
| 117 | 118 |
| 118 expect(result).toBe(42); | 119 expect(result).toBe(42); |
| 119 }; | 120 }; |
| 120 | 121 |
| 121 var pipe = core.createMessagePipe(); | 122 var pipe = core.createMessagePipe(); |
| 122 var anotherPipe = core.createMessagePipe(); | 123 var anotherPipe = core.createMessagePipe(); |
| 123 var sourcePipe = core.createMessagePipe(); | 124 var sourcePipe = core.createMessagePipe(); |
| 124 | 125 |
| 125 var connection0 = new connection.Connection( | 126 var connection0 = new connection.Connection( |
| 126 pipe.handle0, ServiceImpl, sample_service.ServiceClientProxy); | 127 pipe.handle0, ServiceImpl, sample_service.ServiceClient.proxyClass); |
| 127 | 128 |
| 128 var connection1 = new connection.Connection( | 129 var connection1 = new connection.Connection( |
| 129 pipe.handle1, ServiceClientImpl, sample_service.ServiceProxy); | 130 pipe.handle1, ServiceClientImpl, sample_service.Service.proxyClass); |
| 130 | 131 |
| 131 var foo = new sample_service.Foo(); | 132 var foo = new sample_service.Foo(); |
| 132 foo.bar = new sample_service.Bar(); | 133 foo.bar = new sample_service.Bar(); |
| 133 foo.name = "Example name"; | 134 foo.name = "Example name"; |
| 134 foo.source = sourcePipe.handle0; | 135 foo.source = sourcePipe.handle0; |
| 135 connection1.remote.frobinate(foo, true, anotherPipe.handle0); | 136 connection1.remote.frobinate(foo, true, anotherPipe.handle0); |
| 136 | 137 |
| 137 mockSupport.pumpOnce(core.RESULT_OK); | 138 mockSupport.pumpOnce(core.RESULT_OK); |
| 138 | 139 |
| 139 expect(receivedFrobinate).toBeTruthy(); | 140 expect(receivedFrobinate).toBeTruthy(); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 156 | 157 |
| 157 // The Connection object is responsible for closing these handles. | 158 // The Connection object is responsible for closing these handles. |
| 158 expect(core.close(pipe.handle0)).toBe(core.RESULT_INVALID_ARGUMENT); | 159 expect(core.close(pipe.handle0)).toBe(core.RESULT_INVALID_ARGUMENT); |
| 159 expect(core.close(pipe.handle1)).toBe(core.RESULT_INVALID_ARGUMENT); | 160 expect(core.close(pipe.handle1)).toBe(core.RESULT_INVALID_ARGUMENT); |
| 160 } | 161 } |
| 161 | 162 |
| 162 function testWriteToClosedPipe() { | 163 function testWriteToClosedPipe() { |
| 163 var pipe = core.createMessagePipe(); | 164 var pipe = core.createMessagePipe(); |
| 164 | 165 |
| 165 var connection1 = new connection.Connection( | 166 var connection1 = new connection.Connection( |
| 166 pipe.handle1, function() {}, sample_service.ServiceProxy); | 167 pipe.handle1, function() {}, sample_service.Service.proxyClass); |
| 167 | 168 |
| 168 // Close the other end of the pipe. | 169 // Close the other end of the pipe. |
| 169 core.close(pipe.handle0); | 170 core.close(pipe.handle0); |
| 170 | 171 |
| 171 // Not observed yet because we haven't pumped events yet. | 172 // Not observed yet because we haven't pumped events yet. |
| 172 expect(connection1.encounteredError()).toBeFalsy(); | 173 expect(connection1.encounteredError()).toBeFalsy(); |
| 173 | 174 |
| 174 var foo = new sample_service.Foo(); | 175 var foo = new sample_service.Foo(); |
| 175 foo.bar = new sample_service.Bar(); | 176 foo.bar = new sample_service.Bar(); |
| 176 // TODO(darin): crbug.com/357043: pass null in place of |foo| here. | 177 // TODO(darin): crbug.com/357043: pass null in place of |foo| here. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 189 | 190 |
| 190 function testRequestResponse() { | 191 function testRequestResponse() { |
| 191 | 192 |
| 192 // ProviderImpl ------------------------------------------------------------ | 193 // ProviderImpl ------------------------------------------------------------ |
| 193 | 194 |
| 194 function ProviderImpl(peer) { | 195 function ProviderImpl(peer) { |
| 195 this.peer = peer; | 196 this.peer = peer; |
| 196 } | 197 } |
| 197 | 198 |
| 198 ProviderImpl.prototype = | 199 ProviderImpl.prototype = |
| 199 Object.create(sample_interfaces.ProviderStub.prototype); | 200 Object.create(sample_interfaces.Provider.stubClass.prototype); |
| 200 | 201 |
| 201 ProviderImpl.prototype.echoString = function(a) { | 202 ProviderImpl.prototype.echoString = function(a) { |
| 202 mockSupport.queuePump(core.RESULT_OK); | 203 mockSupport.queuePump(core.RESULT_OK); |
| 203 return Promise.resolve({a: a}); | 204 return Promise.resolve({a: a}); |
| 204 }; | 205 }; |
| 205 | 206 |
| 206 ProviderImpl.prototype.echoStrings = function(a, b) { | 207 ProviderImpl.prototype.echoStrings = function(a, b) { |
| 207 mockSupport.queuePump(core.RESULT_OK); | 208 mockSupport.queuePump(core.RESULT_OK); |
| 208 return Promise.resolve({a: a, b: b}); | 209 return Promise.resolve({a: a, b: b}); |
| 209 }; | 210 }; |
| 210 | 211 |
| 211 // ProviderClientImpl ------------------------------------------------------ | 212 // ProviderClientImpl ------------------------------------------------------ |
| 212 | 213 |
| 213 function ProviderClientImpl(peer) { | 214 function ProviderClientImpl(peer) { |
| 214 this.peer = peer; | 215 this.peer = peer; |
| 215 } | 216 } |
| 216 | 217 |
| 217 ProviderClientImpl.prototype = | 218 ProviderClientImpl.prototype = |
| 218 Object.create(sample_interfaces.ProviderClientStub.prototype); | 219 Object.create(sample_interfaces.ProviderClient.stubClass.prototype); |
| 219 | 220 |
| 220 var pipe = core.createMessagePipe(); | 221 var pipe = core.createMessagePipe(); |
| 221 | 222 |
| 222 var connection0 = new connection.Connection( | 223 var connection0 = new connection.Connection( |
| 223 pipe.handle0, ProviderImpl, sample_interfaces.ProviderClientProxy); | 224 pipe.handle0, |
| 225 ProviderImpl, |
| 226 sample_interfaces.ProviderClient.proxyClass); |
| 224 | 227 |
| 225 var connection1 = new connection.Connection( | 228 var connection1 = new connection.Connection( |
| 226 pipe.handle1, ProviderClientImpl, sample_interfaces.ProviderProxy); | 229 pipe.handle1, |
| 230 ProviderClientImpl, |
| 231 sample_interfaces.Provider.proxyClass); |
| 227 | 232 |
| 228 var origReadMessage = core.readMessage; | 233 var origReadMessage = core.readMessage; |
| 229 // echoString | 234 // echoString |
| 230 mockSupport.queuePump(core.RESULT_OK); | 235 mockSupport.queuePump(core.RESULT_OK); |
| 231 return connection1.remote.echoString("hello").then(function(response) { | 236 return connection1.remote.echoString("hello").then(function(response) { |
| 232 expect(response.a).toBe("hello"); | 237 expect(response.a).toBe("hello"); |
| 233 }).then(function() { | 238 }).then(function() { |
| 234 // echoStrings | 239 // echoStrings |
| 235 mockSupport.queuePump(core.RESULT_OK); | 240 mockSupport.queuePump(core.RESULT_OK); |
| 236 return connection1.remote.echoStrings("hello", "world"); | 241 return connection1.remote.echoStrings("hello", "world"); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 247 }).then(function() { | 252 }).then(function() { |
| 248 throw Error("Expected echoString to fail."); | 253 throw Error("Expected echoString to fail."); |
| 249 }, function(error) { | 254 }, function(error) { |
| 250 expect(error.message).toBe("Connection error: " + core.RESULT_UNKNOWN); | 255 expect(error.message).toBe("Connection error: " + core.RESULT_UNKNOWN); |
| 251 | 256 |
| 252 // Clean up. | 257 // Clean up. |
| 253 core.readMessage = origReadMessage; | 258 core.readMessage = origReadMessage; |
| 254 }); | 259 }); |
| 255 } | 260 } |
| 256 }); | 261 }); |
| OLD | NEW |