summaryrefslogtreecommitdiffstats
path: root/install
diff options
context:
space:
mode:
authorEndi Sukma Dewata <edewata@redhat.com>2011-11-17 12:09:00 -0600
committerEndi S. Dewata <edewata@redhat.com>2011-11-18 15:57:00 +0000
commite84bd27af2db254fb1ed5ccc58202f0fb5c6f8cc (patch)
tree7f158d66b17e1639e685dc7673a995d31b3dfd32 /install
parenta9e4316d5aa626e0831febd8b50678fd81f6a67d (diff)
downloadfreeipa-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.js1
-rw-r--r--install/ui/ipa.js71
-rw-r--r--install/ui/test/details_tests.js74
-rw-r--r--install/ui/test/entity_tests.js29
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',