diff options
author | Endi Sukma Dewata <edewata@redhat.com> | 2011-11-17 12:09:00 -0600 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2011-11-18 15:57:00 +0000 |
commit | e84bd27af2db254fb1ed5ccc58202f0fb5c6f8cc (patch) | |
tree | 7f158d66b17e1639e685dc7673a995d31b3dfd32 /install | |
parent | a9e4316d5aa626e0831febd8b50678fd81f6a67d (diff) | |
download | freeipa-e84bd27af2db254fb1ed5ccc58202f0fb5c6f8cc.tar.gz freeipa-e84bd27af2db254fb1ed5ccc58202f0fb5c6f8cc.tar.xz freeipa-e84bd27af2db254fb1ed5ccc58202f0fb5c6f8cc.zip |
Fixed entity definition in test cases.
The test cases have been updated to use the new extensible mechanism
for defining and registering entities.
Ticket #2043
Diffstat (limited to 'install')
-rw-r--r-- | install/ui/entity.js | 1 | ||||
-rw-r--r-- | install/ui/ipa.js | 71 | ||||
-rw-r--r-- | install/ui/test/details_tests.js | 74 | ||||
-rw-r--r-- | install/ui/test/entity_tests.js | 29 |
4 files changed, 106 insertions, 69 deletions
diff --git a/install/ui/entity.js b/install/ui/entity.js index f7bf992aa..4e5c72447 100644 --- a/install/ui/entity.js +++ b/install/ui/entity.js @@ -217,6 +217,7 @@ IPA.entity = function(spec) { return [that.name + '-pkey']; }; + that.entity_init = that.init; return that; }; diff --git a/install/ui/ipa.js b/install/ui/ipa.js index c6d39478a..1ebf1acc4 100644 --- a/install/ui/ipa.js +++ b/install/ui/ipa.js @@ -167,49 +167,56 @@ var IPA = function() { }; that.register = function(name, factory) { + that.remove_entity(name); that.entity_factories[name] = factory; }; - that.get_entities = function() { - return that.entities.values; - }; + that.create_entity = function(name) { + var factory = that.entity_factories[name]; + if (!factory) return null; - that.get_entity = function(name) { - var entity = that.entities.get(name); - if (!entity) { - var factory = that.entity_factories[name]; - if (!factory) { - return null; - } + try { + var builder = that.entity_builder(); - try { - var builder = that.entity_builder(); + builder.entity({ + factory: factory, + name: name + }); - builder.entity({ - factory: factory, - name: name - }); + var entity = builder.build(); - entity = builder.build(); - entity.init({ - builder: builder - }); + entity.init({ + builder: builder + }); - that.add_entity(entity); + return entity; - } catch (e) { - if (e.expected) { - /*expected exceptions thrown by builder just mean that - entities are not to be registered. */ - return null; - } - if (e.message) { - alert(e.message); - } else { - alert(e); - } + } catch (e) { + if (e.expected) { + /*expected exceptions thrown by builder just mean that + entities are not to be registered. */ return null; } + + if (e.message) { + alert(e.message); + } else { + alert(e); + } + + return null; + } + }; + + that.get_entities = function() { + return that.entities.values; + }; + + that.get_entity = function(name) { + var entity = that.entities.get(name); + if (!entity) { + entity = that.create_entity(name); + if (entity) that.add_entity(entity); } return entity; }; diff --git a/install/ui/test/details_tests.js b/install/ui/test/details_tests.js index c6a55cda9..80136649b 100644 --- a/install/ui/test/details_tests.js +++ b/install/ui/test/details_tests.js @@ -156,30 +156,58 @@ test("Testing details lifecycle: create, load.", function(){ return widget; } - var entity = IPA. - entity_builder(). - entity('user'). - details_facet({sections:[ - { - name: 'identity', - label: IPA.messages.details.identity, - fields:['title','givenname','sn','cn','displayname', 'initials'] - }, - { - name: 'contact', - label:'contact', - fields: - [ {factory: test_widget,name:'test'}, - {factory: IPA.multivalued_text_widget, name:'mail'}, - {factory: IPA.multivalued_text_widget, - name:'telephonenumber'}, - {factory: IPA.multivalued_text_widget, name:'pager'}, - {factory: IPA.multivalued_text_widget, name:'mobile'}, - {factory: IPA.multivalued_text_widget, - name:'facsimiletelephonenumber'}] - } - ]}).build(); + IPA.register('user', function(spec) { + + var that = IPA.entity(spec); + + that.init = function(params) { + that.entity_init(params); + + params.builder.details_facet({ + sections: [ + { + name: 'identity', + label: IPA.messages.details.identity, + fields: [ 'title', 'givenname', 'sn', 'cn', 'displayname', 'initials' ] + }, + { + name: 'contact', + label: 'contact', + fields: [ + { + factory: test_widget, + name:'test' + }, + { + factory: IPA.multivalued_text_widget, + name:'mail' + }, + { + factory: IPA.multivalued_text_widget, + name:'telephonenumber' + }, + { + factory: IPA.multivalued_text_widget, + name:'pager' + }, + { + factory: IPA.multivalued_text_widget, + name:'mobile' + }, + { + factory: IPA.multivalued_text_widget, + name:'facsimiletelephonenumber' + } + ] + } + ] + }); + }; + + return that; + }); + var entity = IPA.get_entity('user'); var entity_container = $('<div/>', { name: 'user', diff --git a/install/ui/test/entity_tests.js b/install/ui/test/entity_tests.js index 84a5e28fe..f65549388 100644 --- a/install/ui/test/entity_tests.js +++ b/install/ui/test/entity_tests.js @@ -31,14 +31,20 @@ module('entity',{ url: 'data', on_success: function(data, text_status, xhr) { - IPA.entity_factories.user = function(){ - return IPA. - entity_builder(). - entity('user'). - search_facet({ - columns:['uid']}). - build(); - }; + IPA.register('user', function(spec) { + + var that = IPA.entity(spec); + + that.init = function(params) { + that.entity_init(params); + + params.builder.search_facet({ + columns: [ 'uid' ] + }); + }; + + return that; + }); }, on_error: function(xhr, text_status, error_thrown) { ok(false, "ipa_init() failed: "+error_thrown); @@ -60,12 +66,7 @@ test('Testing IPA.entity_set_search_definition().', function() { return true; }; - var entity = IPA. - entity_builder(). - entity('user'). - search_facet({ - columns:['uid']}). - build(); + var entity = IPA.get_entity('user'); var entity_container = $('<div/>', { name: 'user', |