65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
odoo.define_section('web.registry', ['web.Registry'], {
|
|
beforeEach: function () {
|
|
this.Foo = {bar: 1};
|
|
this.Bar = {foo: 0};
|
|
this.Foo2 = {fred: -1};
|
|
},
|
|
}, function (test) {
|
|
|
|
test('key set', function (assert, Registry) {
|
|
var registry = new Registry();
|
|
|
|
registry
|
|
.add('foo', this.Foo)
|
|
.add('bar', this.Bar);
|
|
|
|
assert.strictEqual(registry.get('foo'), this.Foo);
|
|
// make sure we're comparing actual objects instead of just undefineds
|
|
assert.deepEqual(registry.get('foo'), {bar: 1});
|
|
});
|
|
|
|
test('extension', function (assert, Registry) {
|
|
var registry = new Registry({
|
|
foo: this.Foo,
|
|
bar: this.Bar,
|
|
});
|
|
var registry2 = registry.extend({foo: this.Foo2});
|
|
assert.strictEqual(registry.get('foo'), this.Foo);
|
|
assert.strictEqual(registry2.get('foo'), this.Foo2);
|
|
});
|
|
|
|
test('remain-linked', function (assert, Registry) {
|
|
var registry = new Registry({
|
|
foo: this.Foo,
|
|
bar: this.Bar,
|
|
});
|
|
var registry2 = registry.extend();
|
|
|
|
registry.add('foo2', this.Foo2);
|
|
|
|
assert.strictEqual(registry.get('foo2'), this.Foo2);
|
|
assert.strictEqual(registry2.get('foo2'), this.Foo2);
|
|
});
|
|
|
|
test('multiget', function (assert, Registry) {
|
|
var registry = new Registry({
|
|
foo: this.Foo,
|
|
bar: this.Bar,
|
|
});
|
|
assert.strictEqual(
|
|
registry.get_any(['qux', 'grault', 'bar', 'foo']),
|
|
this.Bar,
|
|
"Registry get_any should find first defined key");
|
|
});
|
|
|
|
test('extended-multiget', function (assert, Registry) {
|
|
var registry = new Registry({
|
|
foo: this.Foo,
|
|
bar: this.Bar,
|
|
});
|
|
var registry2 = registry.extend();
|
|
assert.strictEqual(registry2.get_any(['qux', 'grault', 'bar', 'foo']), this.Bar);
|
|
});
|
|
});
|
|
|