132 lines
4 KiB
JavaScript
132 lines
4 KiB
JavaScript
|
//
|
||
|
// Jala Project [http://opensvn.csie.org/traccgi/jala]
|
||
|
//
|
||
|
// Copyright 2004 ORF Online und Teletext GmbH
|
||
|
//
|
||
|
// Licensed under the Apache License, Version 2.0 (the ``License'');
|
||
|
// you may not use this file except in compliance with the License.
|
||
|
// You may obtain a copy of the License at
|
||
|
//
|
||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||
|
//
|
||
|
// Unless required by applicable law or agreed to in writing, software
|
||
|
// distributed under the License is distributed on an ``AS IS'' BASIS,
|
||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
// See the License for the specific language governing permissions and
|
||
|
// limitations under the License.
|
||
|
//
|
||
|
// $Revision$
|
||
|
// $LastChangedBy$
|
||
|
// $LastChangedDate$
|
||
|
// $HeadURL$
|
||
|
//
|
||
|
|
||
|
/**
|
||
|
* Unit test for #jala.util.createPassword.
|
||
|
*/
|
||
|
var testCreatePassword = function() {
|
||
|
assertMatch(jala.util.createPassword(), /^[^\d]{8}$/);
|
||
|
assertMatch(jala.util.createPassword(100), /^[^\d]{100}$/);
|
||
|
assertMatch(jala.util.createPassword(null, 0), /^[^\d]{8}$/);
|
||
|
assertMatch(jala.util.createPassword(100, 0), /^[^\d]{100}$/);
|
||
|
assertMatch(jala.util.createPassword(null, 1), /^[\d\w]{8}$/);
|
||
|
assertMatch(jala.util.createPassword(100, 1), /^[\d\w]{100}$/);
|
||
|
assertEqual(jala.util.createPassword(null, 2).length, 8);
|
||
|
assertEqual(jala.util.createPassword(100, 2).length, 100);
|
||
|
return;
|
||
|
};
|
||
|
|
||
|
var o1 = {a: 1, b: 2, d: 4, e: {f: 6, g: 7}, h: {i: 9}};
|
||
|
var o2 = {a: 2, c: 3, d: 4, e: {f: 7, h: 8}, i: {j: 10}};
|
||
|
var diff;
|
||
|
|
||
|
/**
|
||
|
* Unit test for #jala.util.diffObjects.
|
||
|
*/
|
||
|
var testDiffObjects = function() {
|
||
|
// diffing various simple objects
|
||
|
diff = jala.util.diffObjects({}, {a: 1});
|
||
|
assertNotNull(diff);
|
||
|
assertEqual(diff.a.status, jala.Utilities.VALUE_ADDED);
|
||
|
|
||
|
diff = jala.util.diffObjects({a: 1}, {});
|
||
|
assertNotNull(diff);
|
||
|
assertEqual(diff.a.status, jala.Utilities.VALUE_REMOVED);
|
||
|
|
||
|
diff = jala.util.diffObjects({a: {b: 1}}, {a: 1});
|
||
|
assertNotNull(diff);
|
||
|
assertEqual(diff.a.status, jala.Utilities.VALUE_MODIFIED);
|
||
|
|
||
|
diff = jala.util.diffObjects({a: {b: 1}}, {a: {b: 1, c: 1}});
|
||
|
assertNotNull(diff);
|
||
|
assertEqual(diff.a.c.status, jala.Utilities.VALUE_ADDED);
|
||
|
|
||
|
diff = jala.util.diffObjects({a: {b: 1}}, {a: {c: 1}});
|
||
|
assertNotNull(diff);
|
||
|
assertEqual(diff.a.b.status, jala.Utilities.VALUE_REMOVED);
|
||
|
assertEqual(diff.a.c.status, jala.Utilities.VALUE_ADDED);
|
||
|
|
||
|
// diffing pre-defined objects
|
||
|
diff = jala.util.diffObjects(o1, o2);
|
||
|
|
||
|
assertNotNull(diff);
|
||
|
assertNotUndefined(diff);
|
||
|
assertEqual(diff.constructor, Object);
|
||
|
|
||
|
assertNotUndefined(diff.a);
|
||
|
assertNotUndefined(diff.b);
|
||
|
assertNotUndefined(diff.c);
|
||
|
assertUndefined(diff.d);
|
||
|
|
||
|
assertNotNull(diff.a);
|
||
|
assertNotNull(diff.b);
|
||
|
assertNotNull(diff.c);
|
||
|
|
||
|
assertEqual(diff.a.value, o2.a);
|
||
|
assertUndefined(diff.b.value);
|
||
|
assertEqual(diff.c.value, o2.c);
|
||
|
|
||
|
assertEqual(diff.a.status, jala.Utilities.VALUE_MODIFIED);
|
||
|
assertEqual(diff.b.status, jala.Utilities.VALUE_REMOVED);
|
||
|
assertEqual(diff.c.status, jala.Utilities.VALUE_ADDED);
|
||
|
assertEqual(diff.e.f.status, jala.Utilities.VALUE_MODIFIED);
|
||
|
assertEqual(diff.e.g.status, jala.Utilities.VALUE_REMOVED);
|
||
|
assertEqual(diff.e.h.status, jala.Utilities.VALUE_ADDED);
|
||
|
assertEqual(diff.h.status, jala.Utilities.VALUE_REMOVED);
|
||
|
assertEqual(diff.i.status, jala.Utilities.VALUE_ADDED);
|
||
|
|
||
|
return;
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Unit test for #jala.util.patchObject.
|
||
|
*/
|
||
|
var testPatchObject = function() {
|
||
|
diff = jala.util.diffObjects(o1, o2);
|
||
|
jala.util.patchObject(o1, diff);
|
||
|
|
||
|
assertNotNull(o1);
|
||
|
assertNotUndefined(o1);
|
||
|
assertEqual(o1.constructor, Object);
|
||
|
|
||
|
assertNotUndefined(o1.a);
|
||
|
assertUndefined(o1.b);
|
||
|
assertNotUndefined(o1.c);
|
||
|
assertNotUndefined(o1.d);
|
||
|
|
||
|
assertNotNull(o1.a);
|
||
|
assertNotNull(o1.c);
|
||
|
assertNotNull(o1.d);
|
||
|
|
||
|
assertEqual(o1.a, o2.a);
|
||
|
assertEqual(o1.c, o2.c);
|
||
|
assertEqual(o1.d, o2.d);
|
||
|
|
||
|
assertEqual(o1.e.f, o2.e.f);
|
||
|
assertUndefined(o1.e.g);
|
||
|
assertEqual(o1.e.h, o2.e.h);
|
||
|
assertUndefined(o1.h);
|
||
|
assertEqual(o1.i.j, o2.i.j);
|
||
|
return;
|
||
|
};
|