blob: d4c8e25c819117bc780f68d013bc336168a82f69 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2013 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<link rel="import" href="/base/extension_registry.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
test('tberSimpleNamedRegistration', function() {
function DummyEvent() {
}
DummyEvent.prototype = {
};
function DummyEventSubclass() {
}
DummyEventSubclass.prototype = {
__proto__: DummyEvent.prototype
};
var options = new tr.b.ExtensionRegistryOptions(
tr.b.TYPE_BASED_REGISTRY_MODE);
options.mandatoryBaseClass = DummyEvent;
options.defaultConstructor = DummyEvent;
tr.b.decorateExtensionRegistry(
DummyEvent, options);
DummyEvent.register(DummyEventSubclass, {typeName: 'dummy-name'});
assert.equal(DummyEvent, DummyEvent.getConstructor('cat', 'name'));
assert.equal(DummyEvent.getConstructor('dummy', 'dummy-name'),
DummyEventSubclass);
DummyEvent.unregister(DummyEventSubclass);
assert.equal(DummyEvent, DummyEvent.getConstructor('dummy', 'dummy-name'));
});
test('tberSimpleCategoryRegistration', function() {
function DummyEvent() {
}
DummyEvent.prototype = {
};
function DummyEventSubclass() {
}
DummyEventSubclass.prototype = {
__proto__: DummyEvent.prototype
};
var options = new tr.b.ExtensionRegistryOptions(
tr.b.TYPE_BASED_REGISTRY_MODE);
options.mandatoryBaseClass = DummyEvent;
options.defaultConstructor = DummyEvent;
tr.b.decorateExtensionRegistry(
DummyEvent, options);
DummyEvent.register(
DummyEventSubclass,
{categoryParts: ['dummy']
});
assert.equal(DummyEvent, DummyEvent.getConstructor('cat', 'name'));
assert.equal(DummyEvent.getConstructor('dummy', 'dummy-name'),
DummyEventSubclass);
DummyEvent.unregister(DummyEventSubclass);
assert.equal(DummyEvent, DummyEvent.getConstructor('dummy', 'dummy-name'));
});
test('tberSimpleCompoundCategory', function() {
function DummyEvent() {
}
DummyEvent.prototype = {
};
function DummyEventSubclass() {
}
DummyEventSubclass.prototype = {
__proto__: DummyEvent.prototype
};
var options = new tr.b.ExtensionRegistryOptions(
tr.b.TYPE_BASED_REGISTRY_MODE);
options.mandatoryBaseClass = DummyEvent;
options.defaultConstructor = DummyEvent;
tr.b.decorateExtensionRegistry(
DummyEvent, options);
DummyEvent.register(
DummyEventSubclass,
{
categoryParts: ['dummy']
});
assert.equal(DummyEvent, DummyEvent.getConstructor('cat', 'name'));
assert.equal(DummyEventSubclass,
DummyEvent.getConstructor('dummy,something-else',
'dummy-name'));
});
test('tberDefaultType', function() {
function DummyEvent() {
}
DummyEvent.prototype = {
};
function DummyEventSubclass() {
}
DummyEventSubclass.prototype = {
__proto__: DummyEvent.prototype
};
var options = new tr.b.ExtensionRegistryOptions(
tr.b.TYPE_BASED_REGISTRY_MODE);
options.mandatoryBaseClass = DummyEvent;
options.defaultConstructor = DummyEvent;
tr.b.decorateExtensionRegistry(
DummyEvent, options);
DummyEvent.register(
DummyEventSubclass,
{
categoryParts: ['dummy']
});
assert.equal(DummyEvent, DummyEvent.getConstructor('cat', 'name'));
assert.equal(DummyEventSubclass,
DummyEvent.getConstructor('dummy,something-else',
'dummy-name'));
});
});
</script>