summaryrefslogtreecommitdiff
path: root/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js
Unidiff
Diffstat (limited to 'frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js15
1 files changed, 6 insertions, 9 deletions
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js
index be1c337..d554c6a 100644
--- a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js
+++ b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js
@@ -1,167 +1,164 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2011 Clipperz Srl
4 4
5This file is part of Clipperz's Javascript Crypto Library. 5This file is part of Clipperz Community Edition.
6Javascript Crypto Library provides web developers with an extensive 6Clipperz Community Edition is an online password manager.
7and efficient set of cryptographic functions. The library aims to
8obtain maximum execution speed while preserving modularity and
9reusability.
10For further information about its features and functionalities please 7For further information about its features and functionalities please
11refer to http://www.clipperz.com 8refer to http://www.clipperz.com.
12 9
13* Javascript Crypto Library is free software: you can redistribute 10* Clipperz Community Edition is free software: you can redistribute
14 it and/or modify it under the terms of the GNU Affero General Public 11 it and/or modify it under the terms of the GNU Affero General Public
15 License as published by the Free Software Foundation, either version 12 License as published by the Free Software Foundation, either version
16 3 of the License, or (at your option) any later version. 13 3 of the License, or (at your option) any later version.
17 14
18* Javascript Crypto Library is distributed in the hope that it will 15* Clipperz Community Edition is distributed in the hope that it will
19 be useful, but WITHOUT ANY WARRANTY; without even the implied 16 be useful, but WITHOUT ANY WARRANTY; without even the implied
20 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21 See the GNU Affero General Public License for more details. 18 See the GNU Affero General Public License for more details.
22 19
23* You should have received a copy of the GNU Affero General Public 20* You should have received a copy of the GNU Affero General Public
24 License along with Javascript Crypto Library. If not, see 21 License along with Clipperz Community Edition. If not, see
25 <http://www.gnu.org/licenses/>. 22 <http://www.gnu.org/licenses/>.
26 23
27*/ 24*/
28 25
29if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
30if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
31if (typeof(Clipperz.PM.Proxy) == 'undefined') { Clipperz.PM.Proxy = {}; } 28if (typeof(Clipperz.PM.Proxy) == 'undefined') { Clipperz.PM.Proxy = {}; }
32 29
33//============================================================================= 30//=============================================================================
34 31
35Clipperz.PM.Proxy.Test = function(args) { 32Clipperz.PM.Proxy.Test = function(args) {
36 Clipperz.PM.Proxy.Test.superclass.constructor.call(this, args); 33 Clipperz.PM.Proxy.Test.superclass.constructor.call(this, args);
37 34
38 args = args || {}; 35 args = args || {};
39 36
40 this._expectedRequests = (args.shouldCheckExpectedRequests === true) ? [] : null; 37 this._expectedRequests = (args.shouldCheckExpectedRequests === true) ? [] : null;
41 this._isExpectingRequests = true; 38 this._isExpectingRequests = true;
42 this._unexpectedRequests = []; 39 this._unexpectedRequests = [];
43 40
44 this.dataStore().resetData(); 41 this.dataStore().resetData();
45 42
46 return this; 43 return this;
47} 44}
48 45
49Clipperz.Base.extend(Clipperz.PM.Proxy.Test, Clipperz.PM.Proxy.Offline, { 46Clipperz.Base.extend(Clipperz.PM.Proxy.Test, Clipperz.PM.Proxy.Offline, {
50 47
51 'toString': function() { 48 'toString': function() {
52 return "Clipperz.PM.Proxy.Test"; 49 return "Clipperz.PM.Proxy.Test";
53 }, 50 },
54 51
55 //========================================================================= 52 //=========================================================================
56 53
57 'expectedRequests': function () { 54 'expectedRequests': function () {
58 return this._expectedRequests; 55 return this._expectedRequests;
59 }, 56 },
60 57
61 //------------------------------------------------------------------------- 58 //-------------------------------------------------------------------------
62 59
63 'shouldCheckExpectedRequests': function () { 60 'shouldCheckExpectedRequests': function () {
64 return (this._expectedRequests != null); 61 return (this._expectedRequests != null);
65 }, 62 },
66 63
67 'setShouldCheckExpectedRequests': function(aValue) { 64 'setShouldCheckExpectedRequests': function(aValue) {
68 if (aValue) { 65 if (aValue) {
69 this._expectedRequests = aValue; 66 this._expectedRequests = aValue;
70 } else { 67 } else {
71 this._expectedRequests = null; 68 this._expectedRequests = null;
72 } 69 }
73 }, 70 },
74 71
75 //------------------------------------------------------------------------- 72 //-------------------------------------------------------------------------
76 73
77 'shouldNotReceiveAnyFurtherRequest': function () { 74 'shouldNotReceiveAnyFurtherRequest': function () {
78 this._isExpectingRequests = false; 75 this._isExpectingRequests = false;
79 }, 76 },
80 77
81 'mayReceiveMoreRequests': function () { 78 'mayReceiveMoreRequests': function () {
82 this._isExpectingRequests = true; 79 this._isExpectingRequests = true;
83 this.resetUnexpectedRequests(); 80 this.resetUnexpectedRequests();
84 }, 81 },
85 82
86 'isExpectingRequests': function () { 83 'isExpectingRequests': function () {
87 return this._isExpectingRequests; 84 return this._isExpectingRequests;
88 }, 85 },
89 86
90 //------------------------------------------------------------------------- 87 //-------------------------------------------------------------------------
91 88
92 'unexpectedRequests': function () { 89 'unexpectedRequests': function () {
93 return this._unexpectedRequests; 90 return this._unexpectedRequests;
94 }, 91 },
95 92
96 'resetUnexpectedRequests': function () { 93 'resetUnexpectedRequests': function () {
97 this._unexpectedRequests = []; 94 this._unexpectedRequests = [];
98 }, 95 },
99 96
100 //------------------------------------------------------------------------- 97 //-------------------------------------------------------------------------
101 98
102 'testExpectedRequestParameters': function (aPath, anActualRequest, anExpectedRequest) { 99 'testExpectedRequestParameters': function (aPath, anActualRequest, anExpectedRequest) {
103 var aKey; 100 var aKey;
104//console.log(">>> Proxy.testExpectedRequestParameters [" + aPath + "]", anActualRequest, anExpectedRequest); 101//console.log(">>> Proxy.testExpectedRequestParameters [" + aPath + "]", anActualRequest, anExpectedRequest);
105 for (aKey in anExpectedRequest) { 102 for (aKey in anExpectedRequest) {
106 if (typeof(anActualRequest[aKey]) == 'undefined') { 103 if (typeof(anActualRequest[aKey]) == 'undefined') {
107 throw "the expected paramter [" + aKey + "] is missing from the actual request"; 104 throw "the expected paramter [" + aKey + "] is missing from the actual request";
108 } 105 }
109 if (typeof(anExpectedRequest[aKey]) == 'object') { 106 if (typeof(anExpectedRequest[aKey]) == 'object') {
110 this.testExpectedRequestParameters(aPath + "." + aKey, anActualRequest[aKey], anExpectedRequest[aKey]) 107 this.testExpectedRequestParameters(aPath + "." + aKey, anActualRequest[aKey], anExpectedRequest[aKey])
111 } else { 108 } else {
112 if (! anExpectedRequest[aKey](anActualRequest[aKey])) { 109 if (! anExpectedRequest[aKey](anActualRequest[aKey])) {
113 throw "wrong value for paramter [" + aKey + "]; got '" + anActualRequest[aKey] + "'"; 110 throw "wrong value for paramter [" + aKey + "]; got '" + anActualRequest[aKey] + "'";
114 } 111 }
115 } 112 }
116 } 113 }
117//console.log("<<< Proxy.testExpectedRequestParameters"); 114//console.log("<<< Proxy.testExpectedRequestParameters");
118 }, 115 },
119 116
120 //------------------------------------------------------------------------- 117 //-------------------------------------------------------------------------
121 118
122 'checkRequest': function(aFunctionName, someParameters) { 119 'checkRequest': function(aFunctionName, someParameters) {
123 if (this.shouldCheckExpectedRequests()) { 120 if (this.shouldCheckExpectedRequests()) {
124 var expectedRequest; 121 var expectedRequest;
125 122
126//console.log(">>> Proxy.Test.checkRequest - " + aFunctionName, someParameters); 123//console.log(">>> Proxy.Test.checkRequest - " + aFunctionName, someParameters);
127 expectedRequest = this.expectedRequests().pop(); 124 expectedRequest = this.expectedRequests().pop();
128//console.log("--- Proxy.Test.checkRequest - expectedRequest", expectedRequest); 125//console.log("--- Proxy.Test.checkRequest - expectedRequest", expectedRequest);
129 if (expectedRequest == null) { 126 if (expectedRequest == null) {
130 throw "Proxy.Test.sentMessage: no expected result specified. Got request '" + aFunctionName + "': " + someParameters; 127 throw "Proxy.Test.sentMessage: no expected result specified. Got request '" + aFunctionName + "': " + someParameters;
131 } 128 }
132 129
133 try { 130 try {
134 if (aFunctionName != expectedRequest.functionName) { 131 if (aFunctionName != expectedRequest.functionName) {
135 throw "wrong function name. Got '" + aFunctionName + "', expected '" + expectedRequest.request.functionName + "'"; 132 throw "wrong function name. Got '" + aFunctionName + "', expected '" + expectedRequest.request.functionName + "'";
136 } 133 }
137 134
138 this.testExpectedRequestParameters("parameters", someParameters, expectedRequest.parameters); 135 this.testExpectedRequestParameters("parameters", someParameters, expectedRequest.parameters);
139 } catch(exception) { 136 } catch(exception) {
140//console.log("EXCEPTION: Proxy.Test.sentMessage[" + expectedRequest.name + "]", exception) 137//console.log("EXCEPTION: Proxy.Test.sentMessage[" + expectedRequest.name + "]", exception)
141 throw "Proxy.Test.sentMessage[" + expectedRequest.name + "]: " + exception; 138 throw "Proxy.Test.sentMessage[" + expectedRequest.name + "]: " + exception;
142 } 139 }
143 } 140 }
144//console.log("<<< Proxy.Test.checkRequest"); 141//console.log("<<< Proxy.Test.checkRequest");
145 }, 142 },
146 143
147 //========================================================================= 144 //=========================================================================
148 145
149 'sendMessage': function(aFunctionName, someParameters) { 146 'sendMessage': function(aFunctionName, someParameters) {
150 var result; 147 var result;
151 148
152 if (this.isExpectingRequests() == false) { 149 if (this.isExpectingRequests() == false) {
153 // throw Clipperz.PM.Connection.exception.UnexpectedRequest; 150 // throw Clipperz.PM.Connection.exception.UnexpectedRequest;
154Clipperz.log("UNEXPECTED REQUEST " + aFunctionName /* + ": " + Clipperz.Base.serializeJSON(someParameters) */); 151Clipperz.log("UNEXPECTED REQUEST " + aFunctionName /* + ": " + Clipperz.Base.serializeJSON(someParameters) */);
155 this.unexpectedRequests().push({'functionName':aFunctionName, 'someParameters': someParameters}); 152 this.unexpectedRequests().push({'functionName':aFunctionName, 'someParameters': someParameters});
156 }; 153 };
157 this.checkRequest(aFunctionName, someParameters); 154 this.checkRequest(aFunctionName, someParameters);
158 result = Clipperz.PM.Proxy.Test.superclass.sendMessage.call(this, aFunctionName, someParameters); 155 result = Clipperz.PM.Proxy.Test.superclass.sendMessage.call(this, aFunctionName, someParameters);
159 156
160 return result; 157 return result;
161 }, 158 },
162 159
163 //========================================================================= 160 //=========================================================================
164 __syntaxFix__: "syntax fix" 161 __syntaxFix__: "syntax fix"
165 162
166}); 163});
167 164