💄 Fix protocol specs.

This commit is contained in:
Cheng Zhao 2013-08-30 13:04:02 +08:00
parent 11221979e5
commit 738cbd4080
2 changed files with 8 additions and 4 deletions

View file

@ -291,7 +291,8 @@ class AdapterProtocolHandler
// static
v8::Handle<v8::Value> Protocol::RegisterProtocol(const v8::Arguments& args) {
std::string scheme(*v8::String::Utf8Value(args[0]));
if (net::URLRequest::IsHandledProtocol(scheme))
if (g_handlers.find(scheme) != g_handlers.end() ||
net::URLRequest::IsHandledProtocol(scheme))
return node::ThrowError("The scheme is already registered");
// Store the handler in a map.

View file

@ -5,11 +5,14 @@ protocol = remote.require 'protocol'
describe 'protocol API', ->
describe 'protocol.registerProtocol', ->
it 'throws error when scheme is already registered', ->
it 'throws error when scheme is already registered', (done) ->
register = -> protocol.registerProtocol('test1', ->)
protocol.once 'registered', (scheme) ->
assert.equal scheme, 'test1'
assert.throws register, /The scheme is already registered/
protocol.unregisterProtocol 'test1'
done()
register()
assert.throws register, /The scheme is already registered/
protocol.unregisterProtocol 'test1'
it 'calls the callback when scheme is visited', (done) ->
protocol.registerProtocol 'test2', (request) ->