aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/example01.ldif20
-rw-r--r--test/example02.ldif14
-rw-r--r--test/example03.ldif14
-rw-r--r--test/example04.ldif56
-rw-r--r--test/example05.ldif11
-rwxr-xr-xtest/testAll.js106
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());
+ }
+ }
+}
+