new JSAN('../lib').use('Test.More'); plan({tests: 34}); ok( 2 == 2, 'two is two is two is two' ); is( "foo", "foo", 'foo is foo' ); isnt( "foo", "bar", 'foo isnt bar'); like("fooble", /^foo/, 'foo is like fooble'); like("FooBle", /foo/i, 'foo is like FooBle'); like("/usr/local/pr0n/", '^\/usr\/local', 'regexes with slashes in like' ); unlike("fbar", /^bar/, 'unlike bar'); unlike("FooBle", /foo/, 'foo is unlike FooBle'); unlike("/var/local/pr0n/", '^\/usr\/local','regexes with slashes in unlike' ); var foo = ['foo', 'bar', 'baz']; unlike(foo, /foo/, 'An array is unlike foo'); canOK('Test.Builder', 'reset', 'plan', 'skipAll', 'ok', 'isEq', 'isNum', 'isntEq', 'isntNum', 'like', 'unlike', 'cmpOK', 'skip', 'todoSkip', 'skipRest', 'diag', 'todo'); var safari = typeof navigator != "undefined" && /Safari|Konqueror/.test(navigator.userAgent) ? true : false; if (safari) skip("http://bugs.webkit.org/show_bug.cgi?id=3537", 1); else canOK(new Test.Builder(), 'reset', 'plan', 'skipAll', 'ok', 'isEq', 'isNum', 'isntEq', 'isntNum', 'like', 'unlike', 'cmpOK', 'skip', 'todoSkip', 'skipRest', 'diag', 'todo'); isaOK([], "Array"); isaOK({}, "Object"); isaOK(Test.Builder.Test, "Test.Builder"); isaOK(Test.Builder.Test, "Object") Test.More.pass('pass() passed'); isDeeply(['this', 'that', 'whatever'], ['this', 'that', 'whatever'], 'isDeeply() with simple arrays'); isDeeply({foo: 42, bar: 23}, {foo: 42, bar: 23}, 'isDeeply() with simple objects'); isSet(['this', 'that', 'whatever'], ['that', 'whatever', 'this'], 'isSet() with simple sets'); var complexArray1 = [ ['this', 'that', 'whatever'], {foo: 42, bar: 23}, "moo", "yarrow", [488, 10, 29] ]; var complexArray2 = [ ['this', 'that', 'whatever'], {foo: 42, bar: 23}, "moo", "yarrow", [488, 10, 29] ]; isDeeply( complexArray1, complexArray2, 'isDeeply() with complex arrays' ); isSet( complexArray1, complexArray2, 'isSet() with complex arrays' ); var array1 = [ 'this', 'that', 'whatever', {foo: 23, bar: 42} ]; var array2 = [ 'this', 'that', 'whatever', {foo: 24, bar: 42} ]; var stack = [], seen = []; ok(!Test.More._eqArray(array1, array2, stack, seen), '_eqArray() with slightly different complicated arrays' ); stack = []; seen = []; ok(!Test.More._eqSet(array1, array2, stack, seen), '_eqSet() with slightly different complicated arrays' ); var hash1 = { foo: 23, bar: ['this', 'that', 'whatever'], ha: { foo: 24, bar: 42 } }; var hash2 = { foo: 23, bar: ['this', 'that', 'whatever'], ha: { foo: 24, bar: 42 } }; isDeeply( hash1, hash2, 'isDeeply() with complicated objects' ); stack = []; seen = []; ok(Test.More._eqAssoc(hash1, hash2, stack, seen), '_eqAssoc() with complicated hashes'); hash2['bar'][1] = 'tha'; stack = []; seen = []; ok(!Test.More._eqAssoc(hash1, hash2, stack, seen), '_eqAssoc() with slightly different complicated hashes'); is(Test.Builder.instance(), Test.More.builder(), 'builder()'); cmpOK(42, '==', 42, 'cmpOK =='); cmpOK('foo', 'eq', 'foo', ' eq'); cmpOK(42.5, '<', 42.6, ' <'); cmpOK(0, '||', 1, ' ||'); isSet([1, 2, [3]], [[3], 1, 2], "isSet() should work with refs" ); isSet([1, 2, [3]], [1, [3], 2], "isSet() should work with reordered refs" );