diff options
Diffstat (limited to 'install/ui/test')
-rw-r--r-- | install/ui/test/aci_tests.js | 15 | ||||
-rw-r--r-- | install/ui/test/data/ipa_init.json | 2 | ||||
-rw-r--r-- | install/ui/test/details_tests.js | 10 | ||||
-rw-r--r-- | install/ui/test/utils_tests.js | 20 | ||||
-rw-r--r-- | install/ui/test/widget_tests.js | 35 |
5 files changed, 64 insertions, 18 deletions
diff --git a/install/ui/test/aci_tests.js b/install/ui/test/aci_tests.js index 17db5b5d6..e82dd86df 100644 --- a/install/ui/test/aci_tests.js +++ b/install/ui/test/aci_tests.js @@ -239,7 +239,17 @@ test("Testing type target.", function() { same(target_widget.target, 'type', 'type selected'); - $("input[type=checkbox]").attr("checked",true); + var attrs_w = target_widget.widgets.get_widget('attrs'); + var options = attrs_w.options; + ok(options.length > 0, "Attrs has some options"); + // check them all + var values = []; + for (var i=0,l=options.length; i<l; i++) { + values.push(options[i].value); + } + attrs_w.update(values); + attrs_w.emit('value-change', { source: attrs_w }); + var record = {}; target_facet.save(record); @@ -250,8 +260,7 @@ test("Testing type target.", function() { 'ipapermtarget', 'memberof', 'attrs'], 'type and attrs rows visible'); - ok((record.attrs.length > 10), - "response length shows some attrs set"); + same(record.attrs.length, options.length, "response contains all checked attrs"); }); diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json index e7c58e66c..059726fea 100644 --- a/install/ui/test/data/ipa_init.json +++ b/install/ui/test/data/ipa_init.json @@ -560,6 +560,7 @@ "error": "Text does not match field pattern", "datetime": "Must be an UTC date/time value (e.g., \"2014-01-20 17:58:01Z\")", "decimal": "Must be a decimal number", + "format": "Format error", "integer": "Must be an integer", "ip_address": "Not a valid IP address", "ip_v4_address": "Not a valid IPv4 address", @@ -567,6 +568,7 @@ "max_value": "Maximum value is ${value}", "min_value": "Minimum value is ${value}", "net_address": "Not a valid network address", + "parse": "Parse error", "port": "'${port}' is not a valid port", "required": "Required field", "unsupported": "Unsupported value" diff --git a/install/ui/test/details_tests.js b/install/ui/test/details_tests.js index c6c33bd17..33d49aa47 100644 --- a/install/ui/test/details_tests.js +++ b/install/ui/test/details_tests.js @@ -24,12 +24,12 @@ define([ 'freeipa/jquery', 'freeipa/details', 'freeipa/facet', + 'freeipa/field', 'freeipa/reg', 'freeipa/rpc', 'freeipa/entity', - 'freeipa/field', 'freeipa/widget'], - function(md, IPA, $, mod_details, mod_facet, reg, rpc) { + function(md, IPA, $, mod_details, mod_facet, mod_field, reg, rpc) { return function() { var details_container; @@ -41,6 +41,7 @@ module('details', { mod_facet.register(); mod_details.register(); + mod_field.register(); IPA.init({ url: 'data', @@ -255,7 +256,10 @@ test("Testing details lifecycle: create, load.", function(){ ok (load_called, 'load manager called'); var field = facet.fields.get_field('test'); - field.set_dirty(true); + field.set_value("foo"); + var widget = facet.widgets.get_widget('contact.test'); + // simulate user change + widget.emit('value-change', { source: widget, value: "foo" }); facet.update( function(){update_success_called = true;}, diff --git a/install/ui/test/utils_tests.js b/install/ui/test/utils_tests.js index b725f55eb..84424a2e1 100644 --- a/install/ui/test/utils_tests.js +++ b/install/ui/test/utils_tests.js @@ -22,9 +22,10 @@ define([ 'freeipa/ipa', 'freeipa/jquery', 'freeipa/datetime', + 'freeipa/util', 'freeipa/field', 'freeipa/widget'], - function(IPA, $, datetime) { return function() { + function(IPA, $, datetime, util) { return function() { var old; @@ -143,6 +144,23 @@ test('Testing IPA.defined', function() { same(IPA.defined(null), false, 'null'); }); +test('Testing util.equals', function() { + + ok(util.equals([], []), 'Empty Arrays'); + ok(util.equals([1, "a", false, true], [1, "a", false, true]), 'Arrays'); + ok(util.equals(true, true), 'Boolean: true'); + ok(util.equals(false, false), 'Boolean: false'); + ok(!util.equals(true, false), 'Negative: boolean'); + ok(!util.equals(false, true), 'Negative: boolean'); + ok(util.equals("abc", "abc"), 'Positive: strings'); + ok(!util.equals("abc", "aBC"), 'Negative: string casing'); + ok(util.equals(1, 1), 'Positive: number'); + ok(util.equals(1.0, 1), 'Positive: number'); + ok(util.equals(2.2, 2.2), 'Positive: number'); + + ok(!util.equals([], [""]), 'Negative: empty array'); +}); + test('Testing datetime', function() { var valid = [ diff --git a/install/ui/test/widget_tests.js b/install/ui/test/widget_tests.js index 5499f5529..d24ab4cbe 100644 --- a/install/ui/test/widget_tests.js +++ b/install/ui/test/widget_tests.js @@ -18,9 +18,15 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -define(['freeipa/ipa', 'freeipa/jquery', 'freeipa/field', 'freeipa/widget', - 'freeipa/entity'], - function(IPA, $) { return function() { +define([ + 'dojo/on', + 'freeipa/ipa', + 'freeipa/jquery', + 'freeipa/group', + 'freeipa/field', + 'freeipa/widget', + 'freeipa/entity' +], function(on, IPA, $, group) { return function() { var widget_container; var widget; @@ -43,6 +49,7 @@ module('widget',{ factory = null; spec = null; + group.register(); }, teardown: function() { @@ -119,23 +126,28 @@ function text_tests(widget,input){ function multivalued_text_tests(widget) { var values = ['val1', 'val2', 'val3']; + var changed = false; + function on_change (event) { + changed = true; + } + on(widget, 'value-change', on_change); widget.update(values); same(widget.save(), values, "All values loaded"); - same(widget.test_dirty(), false, "Field initially clean"); values = ['val1', 'val2', 'val3', 'val4']; widget.add_row(['val4']); - same(widget.save(), values, "Value added"); - same(widget.test_dirty(), true, "Field is dirty"); + ok(changed, "Value changed"); + changed = false; values = ['val1', 'val3', 'val4']; widget.remove_row(widget.rows[1]); same(widget.save(), values, "Value removed"); - same(widget.test_dirty(), true, "Field is dirty"); + ok(changed, "Value changed"); + changed = false; } test("IPA.table_widget" ,function(){ @@ -294,7 +306,10 @@ test("IPA.entity_link_widget" ,function(){ factory = IPA.link_widget; spec = { name: 'gidnumber', - other_entity:'group' + other_entity:'group', + other_pkeys: function() { + return ['kfrog']; + } }; base_widget_test(widget,'user','test_value'); @@ -304,8 +319,6 @@ test("IPA.entity_link_widget" ,function(){ } }; - var mock_record = { uid: ['kfrog'], gidnumber: ['123456']}; - widget.entity = mock_entity; widget.create(widget_container); @@ -315,7 +328,7 @@ test("IPA.entity_link_widget" ,function(){ ok(nonlink.length > 1); ok(link.length > 1); - widget.is_link = true; //setting is_link is responsibility of field + var mock_record = { gidnumber: ['123456']}; widget.update(mock_record.gidnumber); link = widget_container.find('a:contains("123456")'); |