summaryrefslogtreecommitdiff
path: root/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.test.js
Unidiff
Diffstat (limited to 'frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.test.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.test.js22
1 files changed, 10 insertions, 12 deletions
diff --git a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.test.js b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.test.js
index 85aae4e..835be38 100644
--- a/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.test.js
+++ b/frontend/gamma/tests/tests/Clipperz/PM/DataModel/OneTimePassword.test.js
@@ -1,195 +1,193 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose(); 24Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose();
27 25
28var tests = { 26var tests = {
29 27
30 //------------------------------------------------------------------------- 28 //-------------------------------------------------------------------------
31 29
32 'isValidOneTimePasswordValue_test': function (someTestArgs) { 30 'isValidOneTimePasswordValue_test': function (someTestArgs) {
33 var otp; 31 var otp;
34 var notOTP; 32 var notOTP;
35 33
36 otp = 'yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg'; 34 otp = 'yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg';
37 SimpleTest.is(Clipperz.PM.DataModel.OneTimePassword.isValidOneTimePasswordValue(otp), true, "isValidOneTimePasswordValue [expect true] - test 1"); 35 SimpleTest.is(Clipperz.PM.DataModel.OneTimePassword.isValidOneTimePasswordValue(otp), true, "isValidOneTimePasswordValue [expect true] - test 1");
38 36
39 notOTP = 'trustno1'; 37 notOTP = 'trustno1';
40 SimpleTest.is(Clipperz.PM.DataModel.OneTimePassword.isValidOneTimePasswordValue(notOTP), false, "isValidOneTimePasswordValue [expect false] - test 1"); 38 SimpleTest.is(Clipperz.PM.DataModel.OneTimePassword.isValidOneTimePasswordValue(notOTP), false, "isValidOneTimePasswordValue [expect false] - test 1");
41 39
42 return MochiKit.Async.succeed('done'); 40 return MochiKit.Async.succeed('done');
43 }, 41 },
44 42
45 //------------------------------------------------------------------------- 43 //-------------------------------------------------------------------------
46 44
47 'loginUsingOtp_test': function (someTestArgs) { 45 'loginUsingOtp_test': function (someTestArgs) {
48 var deferredResult; 46 var deferredResult;
49 var proxy; 47 var proxy;
50 var user, user2; 48 var user, user2;
51 var username; 49 var username;
52 var passphrase; 50 var passphrase;
53 51
54 username = "test"; 52 username = "test";
55 passphrase = "yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"; //OTP 53 passphrase = "yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"; //OTP
56 54
57 proxy =new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); 55 proxy =new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false});
58 user =new Clipperz.PM.DataModel.User({username:username, getPassphraseFunction:function () { return passphrase;}}); 56 user =new Clipperz.PM.DataModel.User({username:username, getPassphraseFunction:function () { return passphrase;}});
59 user2 =new Clipperz.PM.DataModel.User({username:username, getPassphraseFunction:function () { return passphrase;}}); 57 user2 =new Clipperz.PM.DataModel.User({username:username, getPassphraseFunction:function () { return passphrase;}});
60 58
61 deferredResult = new Clipperz.Async.Deferred("loginUsingOtp_test", someTestArgs); 59 deferredResult = new Clipperz.Async.Deferred("loginUsingOtp_test", someTestArgs);
62 deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_with_otps']); 60 deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_with_otps']);
63 61
64 deferredResult.addMethod(user, 'login'); 62 deferredResult.addMethod(user, 'login');
65 deferredResult.addMethod(user, 'getRecords'); 63 deferredResult.addMethod(user, 'getRecords');
66 deferredResult.addCallback(MochiKit.Base.itemgetter('length')); 64 deferredResult.addCallback(MochiKit.Base.itemgetter('length'));
67 deferredResult.addTest(1, "This account has one single card"); 65 deferredResult.addTest(1, "This account has one single card");
68 66
69 deferredResult.addMethod(user, 'getOneTimePasswords'); 67 deferredResult.addMethod(user, 'getOneTimePasswords');
70 deferredResult.addCallback(MochiKit.Base.itemgetter('length')); 68 deferredResult.addCallback(MochiKit.Base.itemgetter('length'));
71 deferredResult.addTest(1, "This account has one OTP"); 69 deferredResult.addTest(1, "This account has one OTP");
72 70
73 deferredResult.addMethod(user, 'getOneTimePasswords'); 71 deferredResult.addMethod(user, 'getOneTimePasswords');
74 deferredResult.addCallback(MochiKit.Base.itemgetter(0)); 72 deferredResult.addCallback(MochiKit.Base.itemgetter(0));
75 deferredResult.addCallback(MochiKit.Base.methodcaller('status')); 73 deferredResult.addCallback(MochiKit.Base.methodcaller('status'));
76 deferredResult.addTest('USED', "The available OTP has been unsed to login, and should be marked accordingly"); 74 deferredResult.addTest('USED', "The available OTP has been unsed to login, and should be marked accordingly");
77 75
78 deferredResult.addMethod(user2, 'login'); 76 deferredResult.addMethod(user2, 'login');
79 deferredResult.shouldFail("trying to login using the same OTP twice"); 77 deferredResult.shouldFail("trying to login using the same OTP twice");
80 78
81 deferredResult.callback(); 79 deferredResult.callback();
82 80
83 return deferredResult; 81 return deferredResult;
84 }, 82 },
85 83
86 //------------------------------------------------------------------------- 84 //-------------------------------------------------------------------------
87 85
88 'changePassphraseAndLoginUsingOtp_test': function (someTestArgs) { 86 'changePassphraseAndLoginUsingOtp_test': function (someTestArgs) {
89 var deferredResult; 87 var deferredResult;
90 var proxy; 88 var proxy;
91 var user; 89 var user;
92 var user2; 90 var user2;
93 var user3; 91 var user3;
94 var otp; 92 var otp;
95 93
96 otp = "yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"; //OTP 94 otp = "yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"; //OTP
97 95
98 newPassphrase = 'tset'; 96 newPassphrase = 'tset';
99 proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); 97 proxy = new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false});
100 user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}}); 98 user = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return 'test';}});
101 user2 = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return otp;}}); 99 user2 = new Clipperz.PM.DataModel.User({username:'test', getPassphraseFunction:function () { return otp;}});
102 100
103 deferredResult = new Clipperz.Async.Deferred("changePassphraseAndLoginUsingOtp_test", someTestArgs); 101 deferredResult = new Clipperz.Async.Deferred("changePassphraseAndLoginUsingOtp_test", someTestArgs);
104 deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_with_otps']); 102 deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_with_otps']);
105 103
106 deferredResult.addMethod(user, 'login'); 104 deferredResult.addMethod(user, 'login');
107 105
108 deferredResult.addMethod(user, 'getRecords'); 106 deferredResult.addMethod(user, 'getRecords');
109 deferredResult.addCallback(MochiKit.Base.itemgetter('length')); 107 deferredResult.addCallback(MochiKit.Base.itemgetter('length'));
110 deferredResult.addTest(1, "This account has only a single card"); 108 deferredResult.addTest(1, "This account has only a single card");
111 109
112 deferredResult.addMethod(user, 'changePassphrase', newPassphrase); 110 deferredResult.addMethod(user, 'changePassphrase', newPassphrase);
113 deferredResult.addMethod(user, 'logout'); 111 deferredResult.addMethod(user, 'logout');
114 112
115 deferredResult.addMethod(user2, 'login'); 113 deferredResult.addMethod(user2, 'login');
116 deferredResult.addMethod(user2, 'getRecords'); 114 deferredResult.addMethod(user2, 'getRecords');
117 deferredResult.addCallback(MochiKit.Base.itemgetter('length')); 115 deferredResult.addCallback(MochiKit.Base.itemgetter('length'));
118 deferredResult.addTest(1, "This account has oly a single card"); 116 deferredResult.addTest(1, "This account has oly a single card");
119 deferredResult.addMethod(user2, 'logout'); 117 deferredResult.addMethod(user2, 'logout');
120 118
121 deferredResult.callback(); 119 deferredResult.callback();
122 120
123 return deferredResult; 121 return deferredResult;
124 }, 122 },
125 123
126 //------------------------------------------------------------------------- 124 //-------------------------------------------------------------------------
127 125
128 'loginUsingOtpAndWrongUsername_test': function (someTestArgs) { 126 'loginUsingOtpAndWrongUsername_test': function (someTestArgs) {
129 var deferredResult; 127 var deferredResult;
130 var proxy; 128 var proxy;
131 var user, user2; 129 var user, user2;
132 var username; 130 var username;
133 var wrongUsername; 131 var wrongUsername;
134 var passphrase; 132 var passphrase;
135 133
136 username = "test"; 134 username = "test";
137 wrongUsername = "tset"; 135 wrongUsername = "tset";
138 passphrase = "yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"; //OTP 136 passphrase = "yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"; //OTP
139 137
140 proxy =new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); 138 proxy =new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false});
141 user =new Clipperz.PM.DataModel.User({username:wrongUsername, getPassphraseFunction:function () { return passphrase;}}); 139 user =new Clipperz.PM.DataModel.User({username:wrongUsername, getPassphraseFunction:function () { return passphrase;}});
142 user2 =new Clipperz.PM.DataModel.User({username:username, getPassphraseFunction:function () { return passphrase;}}); 140 user2 =new Clipperz.PM.DataModel.User({username:username, getPassphraseFunction:function () { return passphrase;}});
143 141
144 deferredResult = new Clipperz.Async.Deferred("loginUsingOtpAndWrongUsername_test", someTestArgs); 142 deferredResult = new Clipperz.Async.Deferred("loginUsingOtpAndWrongUsername_test", someTestArgs);
145 deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_with_otps']); 143 deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['test_test_with_otps']);
146 144
147 deferredResult.addMethod(user, 'login'); 145 deferredResult.addMethod(user, 'login');
148 deferredResult.shouldFail("login in using the wrong username with the OTP should fail"); 146 deferredResult.shouldFail("login in using the wrong username with the OTP should fail");
149 147
150 deferredResult.addMethod(user2, 'login'); 148 deferredResult.addMethod(user2, 'login');
151 deferredResult.shouldFail("trying to reuse the same OTP should fail, even if now it is used with the correct username"); 149 deferredResult.shouldFail("trying to reuse the same OTP should fail, even if now it is used with the correct username");
152 150
153 deferredResult.callback(); 151 deferredResult.callback();
154 152
155 return deferredResult; 153 return deferredResult;
156 }, 154 },
157 155
158 //------------------------------------------------------------------------- 156 //-------------------------------------------------------------------------
159 157
160 'loginUserWithAPassphraseLookingExactlyLikeAnOTP_test': function (someTestArgs) { 158 'loginUserWithAPassphraseLookingExactlyLikeAnOTP_test': function (someTestArgs) {
161 var deferredResult; 159 var deferredResult;
162 var proxy; 160 var proxy;
163 var user; 161 var user;
164 var username; 162 var username;
165 var passphrase; 163 var passphrase;
166 164
167 username = "otp_user"; 165 username = "otp_user";
168 passphrase = "yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"; //passphrase 166 passphrase = "yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"; //passphrase
169 167
170 proxy =new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false}); 168 proxy =new Clipperz.PM.Proxy.Test({shouldPayTolls:true, isDefault:true, readOnly:false});
171 user =new Clipperz.PM.DataModel.User({username:username, getPassphraseFunction:function () { return passphrase;}}); 169 user =new Clipperz.PM.DataModel.User({username:username, getPassphraseFunction:function () { return passphrase;}});
172 170
173 deferredResult = new Clipperz.Async.Deferred("loginUserWithAPassphraseLookingExactlyLikeAnOTP_test", someTestArgs); 171 deferredResult = new Clipperz.Async.Deferred("loginUserWithAPassphraseLookingExactlyLikeAnOTP_test", someTestArgs);
174 deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['otp_user_test']); 172 deferredResult.addMethod(proxy.dataStore(), 'setupWithEncryptedData', testData['otp_user_test']);
175 173
176 deferredResult.addMethod(user, 'login'); 174 deferredResult.addMethod(user, 'login');
177 deferredResult.addMethod(user, 'getRecords'); 175 deferredResult.addMethod(user, 'getRecords');
178 deferredResult.addCallback(MochiKit.Base.itemgetter('length')); 176 deferredResult.addCallback(MochiKit.Base.itemgetter('length'));
179 deferredResult.addTest(1, "This account has one single card"); 177 deferredResult.addTest(1, "This account has one single card");
180 178
181 deferredResult.callback(); 179 deferredResult.callback();
182 180
183 return deferredResult; 181 return deferredResult;
184 }, 182 },
185 183
186 //------------------------------------------------------------------------- 184 //-------------------------------------------------------------------------
187 //------------------------------------------------------------------------- 185 //-------------------------------------------------------------------------
188 'syntaxFix': MochiKit.Base.noop 186 'syntaxFix': MochiKit.Base.noop
189}; 187};
190 188
191 189
192 190
193//############################################################################# 191//#############################################################################
194 192
195SimpleTest.runDeferredTests("Clipperz.PM.DataModel.OneTimePassword", tests, {trace:false}); 193SimpleTest.runDeferredTests("Clipperz.PM.DataModel.OneTimePassword", tests, {trace:false});