summaryrefslogtreecommitdiffstats
path: root/install/ui/test
diff options
context:
space:
mode:
authorAdam Young <ayoung@redhat.com>2011-03-18 16:43:54 -0400
committerAdam Young <ayoung@redhat.com>2011-03-31 17:29:33 -0400
commit4270e26adb56b6d1b7a9e80433581b82519d9eec (patch)
treedcb0982b741d92c0be37e262e70b7cd0969e06d0 /install/ui/test
parentdb91321fd2c94680361ae8196ba9227615f92c39 (diff)
downloadfreeipa-4270e26adb56b6d1b7a9e80433581b82519d9eec.tar.gz
freeipa-4270e26adb56b6d1b7a9e80433581b82519d9eec.tar.xz
freeipa-4270e26adb56b6d1b7a9e80433581b82519d9eec.zip
define entities using builder and more declarative syntax
merged hbac and sudo in to single files associaton facet and table supports linking
Diffstat (limited to 'install/ui/test')
-rw-r--r--install/ui/test/details_tests.js99
-rw-r--r--install/ui/test/entity_tests.js169
2 files changed, 118 insertions, 150 deletions
diff --git a/install/ui/test/details_tests.js b/install/ui/test/details_tests.js
index 039be0e61..6cc8fd72d 100644
--- a/install/ui/test/details_tests.js
+++ b/install/ui/test/details_tests.js
@@ -18,6 +18,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+var details_container;
+
module('details', {
setup: function() {
@@ -27,30 +29,39 @@ module('details', {
"data",
true,
function(data, text_status, xhr) {
+ IPA.metadata = data.result.results[0];
+ IPA.messages = data.result.results[1].messages;
+ IPA.whoami = data.result.results[2].result[0];
+ IPA.env = data.result.results[3].result;
+ IPA.dns_enabled = data.result.results[4].result;
},
function(xhr, text_status, error_thrown) {
ok(false, "ipa_init() failed: "+error_thrown);
}
);
+ details_container = $('<div id="details"/>').appendTo(document.body);
+
var obj_name = 'user';
- IPA.entity_factories.user=
+ IPA.entity_factories.user=
function(){
return IPA.entity({name:obj_name});
};
IPA.start_entities();
},
teardown: function() {
+ details_container.remove();
}
});
test("Testing IPA.details_section.create().", function() {
- var section = IPA.stanza({name:'IDIDID', label:'NAMENAMENAME'}).
- input({name:'cn'}).
- input({name:'uid'}).
- input({name:'mail'});
+ var section = IPA.details_list_section({
+ name:'IDIDID', label:'NAMENAMENAME'}).
+ text({name:'cn'}).
+ text({name:'uid'}).
+ text({name:'mail'});
section.entity_name = 'user';
section.init();
@@ -143,34 +154,57 @@ test("Testing details lifecycle: create, setup, load.", function(){
load_called = true;
}
- var container = $("<div/>");
+ var container = details_container;
var obj_name = 'user';
- var widget = IPA.widget({name: 'cn'});
-
- widget.setup = function(container) {
- setup_called = true;
- widget.widget_setup(container);
- };
-
- widget.load = function(record) {
- load_called = true;
- widget.widget_load(record);
- };
-
- widget.save = function() {
- save_called = true;
- widget.widget_save();
- };
+ function test_widget(){
+ var widget = IPA.widget({name: 'cn'});
+
+ widget.setup = function(container) {
+ setup_called = true;
+ widget.widget_setup(container);
+ };
+
+ widget.load = function(record) {
+ load_called = true;
+ widget.widget_load(record);
+ };
+
+ widget.save = function() {
+ save_called = true;
+ widget.widget_save();
+ };
+ return widget;
+ }
- IPA.entity_set_details_definition(obj_name, [
- IPA.stanza({name:'identity', label:'Identity Details'}).
- custom_input(widget)
- ]);
+ var entity = IPA.
+ entity_builder().
+ entity('user').
+ details_facet([
+ {
+ section: 'identity',
+ label: IPA.messages.details.identity,
+ fields:['title','givenname','sn','cn','displayname', 'initials']
+ },
+ {
+ section: '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();
+ entity.init();
- var entity = IPA.fetch_entity(obj_name);
var facet = entity.get_facet('details');
+ facet.init();
facet.create(container);
facet.setup(container);
facet.load(result);
@@ -192,7 +226,7 @@ test("Testing details lifecycle: create, setup, load.", function(){
var dts = identity.find('dt');
same(
- dts.length, 1,
+ dts.length, 6,
'Checking dt tags for identity'
);
@@ -219,10 +253,11 @@ test("Testing details lifecycle: create, setup, load.", function(){
test("Testing IPA.details_section_setup again()",function(){
- var section = IPA.stanza({name: 'IDIDID', label: 'NAMENAMENAME'}).
- input({name:'cn', label:'Entity Name'}).
- input({name:'description', label:'Description'}).
- input({name:'number', label:'Entity ID'});
+ var section = IPA.details_list_section({
+ name: 'IDIDID', label: 'NAMENAMENAME'}).
+ text({name:'cn', label:'Entity Name'}).
+ text({name:'description', label:'Description'}).
+ text({name:'number', label:'Entity ID'});
var fields = section.fields;
var container = $("<div title='entity'/>");
var details = $("<div/>");
diff --git a/install/ui/test/entity_tests.js b/install/ui/test/entity_tests.js
index c901c35dd..5f7ba9e73 100644
--- a/install/ui/test/entity_tests.js
+++ b/install/ui/test/entity_tests.js
@@ -18,13 +18,46 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
+var entities_container;
+
module('entity',{
setup: function() {
- IPA.entity_factories.user = function(){
- return IPA.entity({name:'user'})};
- IPA.start_entities();
+
+ IPA.ajax_options.async = false;
+
+ IPA.init(
+ "data",
+ true,
+ function(data, text_status, xhr) {
+ IPA.metadata = data.result.results[0];
+ IPA.messages = data.result.results[1].messages;
+ IPA.whoami = data.result.results[2].result[0];
+ IPA.env = data.result.results[3].result;
+ IPA.dns_enabled = data.result.results[4].result;
+
+ IPA.entity_factories.user = function(){
+ return IPA.
+ entity_builder().
+ entity('user').
+ search_facet({
+ columns:['uid'],
+ add_fields:[]}).
+ build();
+ };
+ IPA.start_entities();
+ },
+ function(xhr, text_status, error_thrown) {
+ ok(false, "ipa_init() failed: "+error_thrown);
+ }
+ );
+
+ entities_container = $('<div id="entities"/>').appendTo(document.body);
+
},
teardown: function() {
+ entities_container.remove();
+
}
});
@@ -34,15 +67,21 @@ test('Testing IPA.entity_set_search_definition().', function() {
return true;
};
- IPA.entity_set_search_definition('user', [
- ['uid', 'Login', uid_callback]
- ]);
- var facet = IPA.entity_get_search_facet('user');
- ok(
- facet,
- 'IPA.entity_get_search_facet(\'user\') is not null'
- );
+ var entity = IPA.
+ entity_builder().
+ entity('user').
+ search_facet({
+ columns:['uid'],
+ add_fields:[]}).
+ build();
+ entity.init();
+
+ var facet = entity.get_facet('search');
+ facet.init();
+ facet.create(entities_container);
+ facet.setup(entities_container);
+
var column = facet.get_columns()[0];
ok(
@@ -56,7 +95,7 @@ test('Testing IPA.entity_set_search_definition().', function() {
);
equals(
- column.label, 'Login',
+ column.label, 'User login',
'column.label'
);
@@ -65,111 +104,5 @@ test('Testing IPA.entity_set_search_definition().', function() {
'column.setup not null'
);
- ok(
- column.setup(),
- 'column.setup() works'
- );
});
-test('Testing ipa_facet_setup_views().', function() {
-
- var orig_switch_and_show_page = IPA.switch_and_show_page;
- IPA.ajax_options.async = false;
-
- IPA.init(
- 'data',
- true,
- function(data, text_status, xhr) {
- ok(true, 'ipa_init() succeeded.');
- },
- function(xhr, text_status, error_thrown) {
- ok(false, 'ipa_init() failed: '+error_thrown);
- }
- );
-
-
- IPA.start_entities();
-
- var entity = IPA.get_entity('user');
- var facet = IPA.search_facet({
- 'name': 'search',
- 'label': 'Search'
- });
- entity.add_facet(facet);
- entity.create_association_facets();
-
-
- var container = $('<div/>');
-
- entity.init();
- entity.setup(container);
-
- var counter = 0;
- IPA.switch_and_show_page = function(entity_name, facet_name, pkey) {
- counter++;
- };
-
- //Container now has two divs, one for the action panel one for content
- var action_panel = facet.get_action_panel();
- ok(action_panel.length, 'action panel exists');
-
- var ul = $('ul', action_panel);
-
- var views = ul.children();
-
- /*6 Views:
- one for each of 3 associations
- one for search
- one for details
- a blank one for the action controls*/
- equals(
- views.length, 6,
- 'Checking number of views'
- );
-
- var li = views.first();
- ok( li.children().first().hasClass('action-controls'),
- 'Checking that first item in list is placement for controls'
- );
-
- li = li.next(); // skip action controls
- li = li.next(); // skip the header line for Member of
-
- var attribute_members = IPA.metadata.objects['user'].attribute_members;
- for (var attribute_member in attribute_members) {
- var objects = attribute_members[attribute_member];
- for (var i = 0; i < objects.length; i++) {
- var object = objects[i];
- var title = attribute_member+'_'+object;
-
- li = li.next();
- var value = li.attr('title');
- equals(
- value, title,
- 'Checking the '+title+' facet'
- );
- }
- }
-
- var pkey_input = $('input[name=pkey]', action_panel);
- ok(pkey_input.length,'pkey input exists');
- var search_facets = $('li.search-facet', action_panel);
- equals(search_facets.length,0,'search facet should not show up in action panel');
- var entity_facets = $('li.entity-facet', action_panel);
- /*No longer automatically adding details, so ony the assoc. facets */
- equals(entity_facets.length,4,'4 hidden entity facets in action panel');
- entity_facets.each(function() {
- ok( $(this).hasClass('entity-facet-disabled'),
- 'entity facets are disabled');
- });
-
- for ( var entity_facet = entity_facets.first();
- entity_facet.length;
- entity_facet = entity_facet.next()){
- entity_facet.click();
- }
-
- equals(counter, 0, 'links are disabled');
-
- IPA.switch_and_show_page = orig_switch_and_show_page;
-});