summaryrefslogtreecommitdiffstats
path: root/install/ui/test
diff options
context:
space:
mode:
Diffstat (limited to 'install/ui/test')
-rw-r--r--install/ui/test/aci_tests.js15
-rw-r--r--install/ui/test/data/ipa_init.json2
-rw-r--r--install/ui/test/details_tests.js10
-rw-r--r--install/ui/test/utils_tests.js20
-rw-r--r--install/ui/test/widget_tests.js35
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")');