Safety check to see if the type exists before editing
[ajatus.git] / testsuite / tests / ajatus_utils.js
blobfb68a1545f1b7228fb9ff26c1c32a83f60670d53
1 module("Ajatus::utils");
3 test("Requirements", function() {        
4         ok( $.ajatus.utils, "$.ajatus.utils" );
5 });
7 test("Boolean", function() {
8     ok($.ajatus.utils.to_boolean(true) == true, "true => true");
9     ok($.ajatus.utils.to_boolean(false) == false, "false => false");
10     ok($.ajatus.utils.to_boolean("true") == true, "'true' => true");
11     ok($.ajatus.utils.to_boolean("false") == false, "'false' => false");
12     ok($.ajatus.utils.to_boolean(1) == true, "1 => true");
13     ok($.ajatus.utils.to_boolean(0) == false, "0 => false");
14     ok($.ajatus.utils.to_boolean("x") == false, "'x' => false");
15 });
17 test("MD5", function() {
18         ok( $.ajatus.utils.md5.encode("abc") == '900150983cd24fb0d6963f7d28e17f72', "abc == 900150983cd24fb0d6963f7d28e17f72" );
19         ok( $.ajatus.utils.md5.encode("client:nemein=") == '016409af20109b2d38f5d868646a806d', "client:nemein= == 016409af20109b2d38f5d868646a806d" );
20     ok( $.ajatus.utils.md5.encode("project:ajatus=") == 'f73de6e5d6830def0b10238edf65d37f', "project:ajatus= == f73de6e5d6830def0b10238edf65d37f" );
21     ok( $.ajatus.utils.md5.encode("project:ajatus=200801") == '67353a86ad5ef28c7dfe6570e22607bd', "project:ajatus=200801 == 67353a86ad5ef28c7dfe6570e22607bd" );
22 });
24 test("Base64", function() {
25     var b64_key = 'abcdefghijklmnopqrstuvwxyzåäö!';
26     var eb64_str = $.ajatus.utils.base64.encode(b64_key);
27     var db64_str = $.ajatus.utils.base64.decode(eb64_str);
28     
29         ok( eb64_str == 'YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXrl5PYh', b64_key+" == YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXrl5PYh" );
30         ok( db64_str == b64_key, eb64_str+" == "+b64_key );
31 });
33 test("UTF-8", function() {
34     var texts = [];
35     texts[0] = "1. Ascii: hello"
36     texts[1] = "2. Russian: На берегу пустынных волн"
37     texts[2] = "3. Math: ∮ E⋅da = Q,  n → ∞, ∑ f(i) = ∏ g(i),"
38     texts[3] = "4. Geek: STARGΛ̊TE SG-1"
39     texts[4] = "5. Braille: ⡌⠁⠧⠑ ⠼⠁⠒  ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌"
40     
41     for (var i=0; i<texts.length; i++) {
42         var e = $.ajatus.utils.utf8.encode(texts[i]);
43         var d = $.ajatus.utils.utf8.decode(e);
44         ok(texts[i] == d, "Encode/Decode: "+texts[i]);
45     }
46 });
48 var ids = [];
49 var x = 0;
50 var ti = null;
51 function gen_ids(count) {
52     for (var i=0; i<count;i++) {
53         ids[x] = $.ajatus.utils.generate_id();
54         x+=1;
55     }
56     clearTimeout(ti);
59 for (var i=0; i<100;i++) {
60     ti = setTimeout('gen_ids('+150+');', 250);
63 test("Generate id", function() {
64     ok(ids.length == 14850, "Generate 14 850 ids");
65     
66     var match_found = false;
67     var match_count = 0;
68     var cids = ids;
69     for (var i=0; i<ids.length;i++) {
70         var key = ids[i];
71         cids[i] = '';
72         var matched = $.inArray(key, cids);
73         if (matched != -1) {
74             match_found = true;
75             match_count += 1;
76         }
77     }
78     
79     ok((match_found == false && match_count == 0), "All generated ids are different");
80 });