diff options
author | Matěj Cepl <mcepl@redhat.com> | 2013-05-13 15:48:02 +0200 |
---|---|---|
committer | Matěj Cepl <mcepl@redhat.com> | 2013-05-13 21:27:37 +0200 |
commit | f23003947b2b34644cdedf9fd9699d8173b20ac7 (patch) | |
tree | 04fcd591a2097f65a4f64f2a51c8cee6a3625acb /test | |
parent | 22afe0326408b03551b655aee52d151cef442b9e (diff) | |
download | parseLDIF-f23003947b2b34644cdedf9fd9699d8173b20ac7.tar.gz |
Add a simple testsuite.
Example files from RFC2849
Diffstat (limited to 'test')
-rw-r--r-- | test/example01.ldif | 20 | ||||
-rw-r--r-- | test/example02.ldif | 14 | ||||
-rw-r--r-- | test/example03.ldif | 14 | ||||
-rw-r--r-- | test/example04.ldif | 56 | ||||
-rw-r--r-- | test/example05.ldif | 11 | ||||
-rwxr-xr-x | test/testAll.js | 106 |
6 files changed, 221 insertions, 0 deletions
diff --git a/test/example01.ldif b/test/example01.ldif new file mode 100644 index 0000000..0c5770f --- /dev/null +++ b/test/example01.ldif @@ -0,0 +1,20 @@ +version: 1 +dn: cn=Barbara Jensen, ou=Product Development, dc=airius, dc=com +objectclass: top +objectclass: person +objectclass: organizationalPerson +cn: Barbara Jensen +cn: Barbara J Jensen +cn: Babs Jensen +sn: Jensen +uid: bjensen +telephoneNumber: +1 408 555 1212 +description: A big sailing fan. + +dn: cn=Bjorn Jensen, ou=Accounting, dc=airius, dc=com +objectclass: top +objectclass: person +objectclass: organizationalPerson +cn: Bjorn Jensen +sn: Jensen +telephoneNumber: +1 408 555 1212 diff --git a/test/example02.ldif b/test/example02.ldif new file mode 100644 index 0000000..51b95ae --- /dev/null +++ b/test/example02.ldif @@ -0,0 +1,14 @@ +version: 1 +dn:cn=Barbara Jensen, ou=Product Development, dc=airius, dc=com +objectclass:top +objectclass:person +objectclass:organizationalPerson +cn:Barbara Jensen +cn:Barbara J Jensen +cn:Babs Jensen +sn:Jensen +uid:bjensen +telephoneNumber:+1 408 555 1212 +description:Babs is a big sailing fan, and travels extensively in sea + rch of perfect sailing conditions. +title:Product Manager, Rod and Reel Division diff --git a/test/example03.ldif b/test/example03.ldif new file mode 100644 index 0000000..c579dde --- /dev/null +++ b/test/example03.ldif @@ -0,0 +1,14 @@ +version: 1 +dn: cn=Gern Jensen, ou=Product Testing, dc=airius, dc=com +objectclass: top +objectclass: person +objectclass: organizationalPerson +cn: Gern Jensen +cn: Gern O Jensen +sn: Jensen +uid: gernj +telephoneNumber: +1 408 555 1212 +description:: V2hhdCBhIGNhcmVmdWwgcmVhZGVyIHlvdSBhcmUhICBUaGlzIHZhbHVl +IGlzIGJhc2UtNjQtZW5jb2RlZCBiZWNhdXNlIGl0IGhhcyBhIGNvbnRyb2wgY2hhcmFjdG +VyIGluIGl0IChhIENSKS4NICBCeSB0aGUgd2F5LCB5b3Ugc2hvdWxkIHJlYWxseSBnZXQg +b3V0IG1vcmUu diff --git a/test/example04.ldif b/test/example04.ldif new file mode 100644 index 0000000..7635e63 --- /dev/null +++ b/test/example04.ldif @@ -0,0 +1,56 @@ +version: 1 +dn:: b3U95Za25qWt6YOoLG89QWlyaXVz +# dn:: ou=<JapaneseOU>,o=Airius +objectclass: top +objectclass: organizationalUnit +ou:: 5Za25qWt6YOo +# ou:: <JapaneseOU> +ou;lang-ja:: 5Za25qWt6YOo +# ou;lang-ja:: <JapaneseOU> +ou;lang-ja;phonetic:: 44GI44GE44GO44KH44GG44G2 + + +# ou;lang-ja:: <JapaneseOU_in_phonetic_representation> +ou;lang-en: Sales +description: Japanese office + +dn:: dWlkPXJvZ2FzYXdhcmEsb3U95Za25qWt6YOoLG89QWlyaXVz +# dn:: uid=<uid>,ou=<JapaneseOU>,o=Airius +userpassword: {SHA}O3HSv1MusyL4kTjP+HKI5uxuNoM= +objectclass: top +objectclass: person +objectclass: organizationalPerson +objectclass: inetOrgPerson +uid: rogasawara +mail: rogasawara@airius.co.jp +givenname;lang-ja:: 44Ot44OJ44OL44O8 +# givenname;lang-ja:: <JapaneseGivenname> +sn;lang-ja:: 5bCP56yg5Y6f +# sn;lang-ja:: <JapaneseSn> +cn;lang-ja:: 5bCP56yg5Y6fIOODreODieODi+ODvA== +# cn;lang-ja:: <JapaneseCn> +title;lang-ja:: 5Za25qWt6YOoIOmDqOmVtw== +# title;lang-ja:: <JapaneseTitle> +preferredlanguage: ja +givenname:: 44Ot44OJ44OL44O8 +# givenname:: <JapaneseGivenname> +sn:: 5bCP56yg5Y6f +# sn:: <JapaneseSn> +cn:: 5bCP56yg5Y6fIOODreODieODi+ODvA== +# cn:: <JapaneseCn> +title:: 5Za25qWt6YOoIOmDqOmVtw== +# title:: <JapaneseTitle> +givenname;lang-ja;phonetic:: 44KN44Gp44Gr44O8 +# givenname;lang-ja;phonetic:: +<JapaneseGivenname_in_phonetic_representation_kana> +sn;lang-ja;phonetic:: 44GK44GM44GV44KP44KJ +# sn;lang-ja;phonetic:: <JapaneseSn_in_phonetic_representation_kana> +cn;lang-ja;phonetic:: 44GK44GM44GV44KP44KJIOOCjeOBqeOBq+ODvA== +# cn;lang-ja;phonetic:: <JapaneseCn_in_phonetic_representation_kana> +title;lang-ja;phonetic:: 44GI44GE44GO44KH44GG44G2IOOBtuOBoeOCh+OBhg== +# title;lang-ja;phonetic:: +# <JapaneseTitle_in_phonetic_representation_kana> +givenname;lang-en: Rodney +sn;lang-en: Ogasawara +cn;lang-en: Rodney Ogasawara +title;lang-en: Sales, Director diff --git a/test/example05.ldif b/test/example05.ldif new file mode 100644 index 0000000..2f7506f --- /dev/null +++ b/test/example05.ldif @@ -0,0 +1,11 @@ +version: 1 +dn: cn=Horatio Jensen, ou=Product Testing, dc=airius, dc=com +objectclass: top +objectclass: person +objectclass: organizationalPerson +cn: Horatio Jensen +cn: Horatio N Jensen +sn: Jensen +uid: hjensen +telephoneNumber: +1 408 555 1212 +jpegphoto:< file:///usr/local/directory/photos/hjensen.jpg diff --git a/test/testAll.js b/test/testAll.js new file mode 100755 index 0000000..9aabd43 --- /dev/null +++ b/test/testAll.js @@ -0,0 +1,106 @@ +#!/usr/bin/rhino + +load("../parseLDIF.js"); + +Object.prototype.equals = function(x) { + var p; + for(p in this) { + if(typeof(x[p])=='undefined') {return false;} + } + + for(p in this) { + if (this[p]) { + switch(typeof(this[p])) { + case 'object': + if (!this[p].equals(x[p])) { return false; } break; + case 'function': + if (typeof(x[p])=='undefined' || + (p != 'equals' && this[p].toString() != x[p].toString())) + return false; + break; + default: + if (this[p] != x[p]) { return false; } + } + } else { + if (x[p]) + return false; + } + } + + for(p in x) { + if(typeof(this[p])=='undefined') {return false;} + } + + return true; +} + +var observed = {}; +var expResults = { + 1: [ + { + cn: ["Barbara Jensen", "Barbara J Jensen", "Babs Jensen"], + sn:"Jensen", + telephoneNumber:"+1 408 555 1212", + description:"A big sailing fan." + }, + { + cn:"Bjorn Jensen", + sn:"Jensen", + telephoneNumber:"+1 408 555 1212" + } + ], + 2: [ + { + cn: ["Barbara Jensen", "Barbara J Jensen", "Babs Jensen"], + sn:"Jensen", + telephoneNumber:"+1 408 555 1212", + description:'Babs is a big sailing fan, and travels extensively in ' + + 'search of perfect sailing conditions.', + title:"Product Manager, Rod and Reel Division" + } + ], + 3: [ + { + cn: ["Gern Jensen", "Gern O Jensen"], + sn:"Jensen", + telephoneNumber:"+1 408 555 1212", + description:'What a careful reader you are! This value is base-64-encoded' + + ' because it has a control character in it (a CR).\r By the way,' + + ' you should really get out more.' + } + ], + 4: [ + { + mail:"rogasawara@airius.co.jp", + givenname:"ロドニー", + sn: "小笠原", + cn:"小笠原 ロドニー", + title:"営業部 部長", + } + ], + 5: [ + { + cn: ["Horatio Jensen", "Horatio N Jensen"], + sn:"Jensen", + telephoneNumber:"+1 408 555 1212" + } + ] +}; + +var resultsCount = Object.keys(expResults).length; + +for (var key in expResults) { + if (expResults.hasOwnProperty(key)) { + var lines = readFile("example0" + key + ".ldif").replace(/\r\n/g,"\n"); + observed = parseLDIF(lines.split("\n")); + if (observed.equals(expResults[key])) { + print(key + "/" + resultsCount + " ... OK"); + } + else { + print("Test " + key + " fails! Expected:\n" + + expResults[key].toSource() + + "\n----\nObserved:\n" + observed.toSource()); + } + } +} + |