diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2011-12-01 15:58:49 +0100 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2011-12-05 16:02:01 +0000 |
commit | c5ca34f41d2aede667c19d2213a5d7e79a5e301c (patch) | |
tree | daa2cd27a4fd9a579009c900a262b8a5cc40d037 /install/ui/test/aci_tests.js | |
parent | 2759ea29616f14716016c0e62d13909694b2bf0b (diff) | |
download | freeipa-c5ca34f41d2aede667c19d2213a5d7e79a5e301c.tar.gz freeipa-c5ca34f41d2aede667c19d2213a5d7e79a5e301c.tar.xz freeipa-c5ca34f41d2aede667c19d2213a5d7e79a5e301c.zip |
Fixed unit tests after widget refactoring
https://fedorahosted.org/freeipa/ticket/2040
Diffstat (limited to 'install/ui/test/aci_tests.js')
-rw-r--r-- | install/ui/test/aci_tests.js | 189 |
1 files changed, 131 insertions, 58 deletions
diff --git a/install/ui/test/aci_tests.js b/install/ui/test/aci_tests.js index b050b7476..2881fa23b 100644 --- a/install/ui/test/aci_tests.js +++ b/install/ui/test/aci_tests.js @@ -20,30 +20,77 @@ var target_container; -var target_section; -var entity = {name:'bogus'}; - -module('aci',{ - setup: function() { - IPA.ajax_options.async = false; - IPA.init({ - url: 'data', - on_error: function(xhr, text_status, error_thrown) { - ok(false, "ipa_init() failed: "+error_thrown); - } - }); - - target_container = $('<div id="target"/>').appendTo(document.body); - target_section = IPA.permission_target_section({ - name: 'target', - label: 'Target', - entity:entity - }); - target_section.create(target_container); - }, - teardown: function() { - target_container.remove(); - }} +var target_widget; +var target_facet; +var entity = IPA.entity({ name:'bogus', metadata: {} }); + +module('aci', { + setup: function() { + IPA.ajax_options.async = false; + IPA.init({ + url: 'data', + on_error: function(xhr, text_status, error_thrown) { + ok(false, "ipa_init() failed: "+error_thrown); + } + }); + + target_facet = IPA.details_facet({ + entity: entity, + fields: [ + { + type: 'select', + name: 'target', + widget: 'target.target' + }, + { + name: 'filter', + widget: 'target.filter', + enabled: false + }, + { + name: 'subtree', + widget: 'target.subtree', + enabled: false + }, + { + type: 'entity_select', + name: 'targetgroup', + widget: 'target.targetgroup', + enabled: false + }, + { + type: 'select', + name: 'type', + widget: 'target.type', + enabled: false + }, + { + name: 'attrs', + widget: 'target.attrs', + enabled: false + } + ], + widgets: [ + { + type: 'permission_target', + container_factory: IPA.details_table_section, + name: 'target', + label: 'Target', + show_target: false + } + ], + policies: [ + IPA.permission_target_policy('target') + ] + }); + + target_container = $('<div id="target"/>').appendTo(document.body); + target_widget = target_facet.widgets.get_widget('target'); + target_widget.create(target_container); + }, + teardown: function() { + target_container.remove(); + }} ); @@ -59,7 +106,6 @@ test("IPA.attributes_widget.", function() { name: 'attrs', object_type: 'user', entity:entity - }); widget.create(container); @@ -68,15 +114,13 @@ test("IPA.attributes_widget.", function() { ok( table, - 'Widget contains table' - ); + 'Widget contains table'); var tr = $('tbody tr', table); same( tr.length, aciattrs.length, - 'Widget contains all user ACI attributes' - ); + 'Widget contains all user ACI attributes'); var record = { 'attrs': [ @@ -88,22 +132,19 @@ test("IPA.attributes_widget.", function() { same( widget.save(), [], - 'Widget has no initial values' - ); + 'Widget has no initial values'); - widget.load(record); + widget.update(record.attrs); tr = $('tbody tr', table); same( tr.length, aciattrs.length+1, - 'Widget contains all user ACI attributes plus 1 unmatched attribute' - ); + 'Widget contains all user ACI attributes plus 1 unmatched attribute'); same( widget.save(), record.attrs.sort(), - 'All loaded values are saved and sorted' - ); + 'All loaded values are saved and sorted'); }); test("IPA.rights_widget.", function() { @@ -123,48 +164,77 @@ test("IPA.rights_widget.", function() { same( inputs.length, widget.rights.length, - 'Widget displays all permissions' - ); + 'Widget displays all permissions'); }); +var get_visible_rows = function(section) { + var keys = section.rows.keys; + + var visible = []; + + for (var i=0; i<keys.length; i++) { + var key = keys[i]; + var row = section.rows.get(key); + var row_visible = row.css('display') !== 'none'; + if(row_visible) { + visible.push(key); + } + } + + return visible; +}; + test("Testing aci grouptarget.", function() { - var sample_data_filter_only = {"targetgroup":"ipausers"}; - target_section.load(sample_data_filter_only); + var sample_data_filter_only = { targetgroup:"ipausers" }; + target_facet.load(sample_data_filter_only); - var selected = $(target_section.type_select+":selected"); + same(target_widget.target, 'targetgroup' , 'group control selected'); - same(selected.val(), 'targetgroup' , 'group control selected'); - ok ($('option', selected.group_select).length > 2, + + same(get_visible_rows(target_widget), ['targetgroup'], + 'group select row visible'); + + ok ($('option', target_widget.group_select.container).length > 2, 'group select populated'); }); test("Testing type target.", function() { - var sample_data_filter_only = {"type":"hostgroup"}; + var sample_data = { type:"hostgroup" }; + + target_facet.load(sample_data); - target_section.load(sample_data_filter_only); - var selected = $(target_section.type_select+":selected"); - same(selected.val(), 'type', 'type selected'); + same(target_widget.target, 'type', 'type selected'); $("input[type=checkbox]").attr("checked",true); - var response_record = {}; - target_section.save(response_record); - same(response_record.type[0], sample_data_filter_only.type, + var record = {}; + target_facet.save(record); + + same(record.type[0], sample_data.type, "saved type matches sample data"); - ok((response_record.attrs.length > 10), - "response length shows some attrs set"); + same(get_visible_rows(target_widget), ['type', 'attrs'], + 'type and attrs rows visible'); + + ok((record.attrs.length > 10), + "response length shows some attrs set"); }); test("Testing filter target.", function() { - var sample_data_filter_only = {"filter":"somevalue"}; + var sample_data = { filter:"somevalue" }; - target_section.load(sample_data_filter_only); + target_facet.load(sample_data); + + var record = {}; + target_facet.save(record); - var selected = $(target_section.type_select+":selected"); - same(selected.val(), 'filter', 'filter selected'); + same(target_widget.target, 'filter', 'filter selected'); + + same(get_visible_rows(target_widget), ['filter'], 'filter row visible'); + + ok(record.filter[0], sample_data.filter, 'filter set correctly'); }); @@ -174,10 +244,13 @@ test("Testing subtree target.", function() { var sample_data = { subtree:"ldap:///cn=*,cn=roles,cn=accounts,dc=example,dc=co"}; - target_section.load(sample_data); + target_facet.load(sample_data); var record = {}; - target_section.save(record); + target_facet.save(record); + same(record.subtree[0], sample_data.subtree, 'subtree set correctly'); + + same(get_visible_rows(target_widget), ['subtree'], 'subtree row visible'); }); |