jsf.js_next_gen 1.0.0-beta-1 → 1.0.0-beta-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/.github/workflows/codeql-analysis.yml +83 -0
  2. package/.github/workflows/nodejs.yml +1 -1
  3. package/dist/window/jsf-development.js +51 -39
  4. package/dist/window/jsf-development.js.map +1 -1
  5. package/dist/window/jsf.js +1 -1
  6. package/dist/window/jsf.js.br +0 -0
  7. package/dist/window/jsf.js.gz +0 -0
  8. package/dist/window/jsf.js.map +1 -1
  9. package/package.json +23 -24
  10. package/remap.js +44 -0
  11. package/remap.js.map +1 -0
  12. package/remap.ts +1 -1
  13. package/src/main/typescript/impl/util/AsyncQueue.ts +1 -1
  14. package/src/main/typescript/impl/xhrCore/RequestDataResolver.ts +1 -1
  15. package/src/test/typescript/frameworkBase/LangTest.ts +2 -10
  16. package/src/test/typescript/frameworkBase/_ext/monadish/DomQueryTest.ts +12 -11
  17. package/src/test/typescript/frameworkBase/_ext/monadish/LangTest.ts +1 -1
  18. package/src/test/typescript/frameworkBase/_ext/monadish/MappingProbes.ts +13 -19
  19. package/src/test/typescript/frameworkBase/_ext/monadish/StreamTest.ts +5 -9
  20. package/target/api/Jsf.js +258 -0
  21. package/target/api/Jsf.js.map +1 -0
  22. package/target/impl/AjaxImpl.js +569 -0
  23. package/target/impl/AjaxImpl.js.map +1 -0
  24. package/target/impl/PushImpl.js +215 -0
  25. package/target/impl/PushImpl.js.map +1 -0
  26. package/target/impl/core/Const.js +135 -0
  27. package/target/impl/core/Const.js.map +1 -0
  28. package/target/impl/core/ImplTypes.js +43 -0
  29. package/target/impl/core/ImplTypes.js.map +1 -0
  30. package/target/impl/i18n/Messages.js +114 -0
  31. package/target/impl/i18n/Messages.js.map +1 -0
  32. package/target/impl/util/Assertions.js +90 -0
  33. package/target/impl/util/Assertions.js.map +1 -0
  34. package/target/impl/util/AsyncQueue.js +104 -0
  35. package/target/impl/util/AsyncQueue.js.map +1 -0
  36. package/target/impl/util/AsyncRunnable.js +18 -0
  37. package/target/impl/util/AsyncRunnable.js.map +1 -0
  38. package/target/impl/util/ExtDomQuery.js +129 -0
  39. package/target/impl/util/ExtDomQuery.js.map +1 -0
  40. package/target/impl/util/Lang.js +215 -0
  41. package/target/impl/util/Lang.js.map +1 -0
  42. package/target/impl/util/ListenerQueue.js +3 -0
  43. package/target/impl/util/ListenerQueue.js.map +1 -0
  44. package/target/impl/xhrCore/ErrorData.js +89 -0
  45. package/target/impl/xhrCore/ErrorData.js.map +1 -0
  46. package/target/impl/xhrCore/EventData.js +30 -0
  47. package/target/impl/xhrCore/EventData.js.map +1 -0
  48. package/target/impl/xhrCore/IResponseProcessor.js +3 -0
  49. package/target/impl/xhrCore/IResponseProcessor.js.map +1 -0
  50. package/target/impl/xhrCore/RequestDataResolver.js +143 -0
  51. package/target/impl/xhrCore/RequestDataResolver.js.map +1 -0
  52. package/target/impl/xhrCore/ResonseDataResolver.js +103 -0
  53. package/target/impl/xhrCore/ResonseDataResolver.js.map +1 -0
  54. package/target/impl/xhrCore/Response.js +167 -0
  55. package/target/impl/xhrCore/Response.js.map +1 -0
  56. package/target/impl/xhrCore/ResponseProcessor.js +368 -0
  57. package/target/impl/xhrCore/ResponseProcessor.js.map +1 -0
  58. package/target/impl/xhrCore/XhrFormData.js +272 -0
  59. package/target/impl/xhrCore/XhrFormData.js.map +1 -0
  60. package/target/impl/xhrCore/XhrRequest.js +281 -0
  61. package/target/impl/xhrCore/XhrRequest.js.map +1 -0
  62. package/target/main/typescript/api/Jsf.js +258 -0
  63. package/target/main/typescript/api/Jsf.js.map +1 -0
  64. package/target/main/typescript/impl/AjaxImpl.js +569 -0
  65. package/target/main/typescript/impl/AjaxImpl.js.map +1 -0
  66. package/target/main/typescript/impl/PushImpl.js +215 -0
  67. package/target/main/typescript/impl/PushImpl.js.map +1 -0
  68. package/target/main/typescript/impl/core/Const.js +135 -0
  69. package/target/main/typescript/impl/core/Const.js.map +1 -0
  70. package/target/main/typescript/impl/core/ImplTypes.js +43 -0
  71. package/target/main/typescript/impl/core/ImplTypes.js.map +1 -0
  72. package/target/main/typescript/impl/i18n/Messages.js +114 -0
  73. package/target/main/typescript/impl/i18n/Messages.js.map +1 -0
  74. package/target/main/typescript/impl/util/Assertions.js +90 -0
  75. package/target/main/typescript/impl/util/Assertions.js.map +1 -0
  76. package/target/main/typescript/impl/util/AsyncQueue.js +104 -0
  77. package/target/main/typescript/impl/util/AsyncQueue.js.map +1 -0
  78. package/target/main/typescript/impl/util/AsyncRunnable.js +18 -0
  79. package/target/main/typescript/impl/util/AsyncRunnable.js.map +1 -0
  80. package/target/main/typescript/impl/util/ExtDomQuery.js +129 -0
  81. package/target/main/typescript/impl/util/ExtDomQuery.js.map +1 -0
  82. package/target/main/typescript/impl/util/Lang.js +215 -0
  83. package/target/main/typescript/impl/util/Lang.js.map +1 -0
  84. package/target/main/typescript/impl/util/ListenerQueue.js +3 -0
  85. package/target/main/typescript/impl/util/ListenerQueue.js.map +1 -0
  86. package/target/main/typescript/impl/xhrCore/ErrorData.js +89 -0
  87. package/target/main/typescript/impl/xhrCore/ErrorData.js.map +1 -0
  88. package/target/main/typescript/impl/xhrCore/EventData.js +30 -0
  89. package/target/main/typescript/impl/xhrCore/EventData.js.map +1 -0
  90. package/target/main/typescript/impl/xhrCore/IResponseProcessor.js +3 -0
  91. package/target/main/typescript/impl/xhrCore/IResponseProcessor.js.map +1 -0
  92. package/target/main/typescript/impl/xhrCore/RequestDataResolver.js +143 -0
  93. package/target/main/typescript/impl/xhrCore/RequestDataResolver.js.map +1 -0
  94. package/target/main/typescript/impl/xhrCore/ResonseDataResolver.js +103 -0
  95. package/target/main/typescript/impl/xhrCore/ResonseDataResolver.js.map +1 -0
  96. package/target/main/typescript/impl/xhrCore/Response.js +167 -0
  97. package/target/main/typescript/impl/xhrCore/Response.js.map +1 -0
  98. package/target/main/typescript/impl/xhrCore/ResponseProcessor.js +368 -0
  99. package/target/main/typescript/impl/xhrCore/ResponseProcessor.js.map +1 -0
  100. package/target/main/typescript/impl/xhrCore/XhrFormData.js +272 -0
  101. package/target/main/typescript/impl/xhrCore/XhrFormData.js.map +1 -0
  102. package/target/main/typescript/impl/xhrCore/XhrRequest.js +281 -0
  103. package/target/main/typescript/impl/xhrCore/XhrRequest.js.map +1 -0
  104. package/target/test/typescript/frameworkBase/LangTest.js +112 -0
  105. package/target/test/typescript/frameworkBase/LangTest.js.map +1 -0
  106. package/target/test/typescript/frameworkBase/_ext/monadish/DomQueryTest.js +293 -0
  107. package/target/test/typescript/frameworkBase/_ext/monadish/DomQueryTest.js.map +1 -0
  108. package/target/test/typescript/frameworkBase/_ext/monadish/LangTest.js +89 -0
  109. package/target/test/typescript/frameworkBase/_ext/monadish/LangTest.js.map +1 -0
  110. package/target/test/typescript/frameworkBase/_ext/monadish/MappingProbes.js +115 -0
  111. package/target/test/typescript/frameworkBase/_ext/monadish/MappingProbes.js.map +1 -0
  112. package/target/test/typescript/frameworkBase/_ext/monadish/MappingTest.js +39 -0
  113. package/target/test/typescript/frameworkBase/_ext/monadish/MappingTest.js.map +1 -0
  114. package/target/test/typescript/frameworkBase/_ext/monadish/MonadTest.js +155 -0
  115. package/target/test/typescript/frameworkBase/_ext/monadish/MonadTest.js.map +1 -0
  116. package/target/test/typescript/frameworkBase/_ext/monadish/StreamTest.js +176 -0
  117. package/target/test/typescript/frameworkBase/_ext/monadish/StreamTest.js.map +1 -0
  118. package/target/test/typescript/frameworkBase/_ext/monadish/XmlQueryTest.js +1 -0
  119. package/target/test/typescript/frameworkBase/_ext/monadish/XmlQueryTest.js.map +1 -0
  120. package/target/test/typescript/frameworkBase/_ext/shared/StandardInits.js +264 -0
  121. package/target/test/typescript/frameworkBase/_ext/shared/StandardInits.js.map +1 -0
  122. package/target/test/typescript/frameworkBase/_ext/shared/XmlResponses.js +23 -0
  123. package/target/test/typescript/frameworkBase/_ext/shared/XmlResponses.js.map +1 -0
  124. package/target/test/typescript/impl/ImplTest.js +98 -0
  125. package/target/test/typescript/impl/ImplTest.js.map +1 -0
  126. package/target/test/typescript/impl/SeparatorCharsTest.js +72 -0
  127. package/target/test/typescript/impl/SeparatorCharsTest.js.map +1 -0
  128. package/target/test/typescript/queue/AsynchronousProbe.js +99 -0
  129. package/target/test/typescript/queue/AsynchronousProbe.js.map +1 -0
  130. package/target/test/typescript/queue/AsynchronousQueueTest.js +130 -0
  131. package/target/test/typescript/queue/AsynchronousQueueTest.js.map +1 -0
  132. package/target/test/typescript/xhrCore/EventTests.js +155 -0
  133. package/target/test/typescript/xhrCore/EventTests.js.map +1 -0
  134. package/target/test/typescript/xhrCore/FakeWebsocket.js +25 -0
  135. package/target/test/typescript/xhrCore/FakeWebsocket.js.map +1 -0
  136. package/target/test/typescript/xhrCore/FileUploadTest.js +166 -0
  137. package/target/test/typescript/xhrCore/FileUploadTest.js.map +1 -0
  138. package/target/test/typescript/xhrCore/RequestParamsTest.js +151 -0
  139. package/target/test/typescript/xhrCore/RequestParamsTest.js.map +1 -0
  140. package/target/test/typescript/xhrCore/RequestTest.js +318 -0
  141. package/target/test/typescript/xhrCore/RequestTest.js.map +1 -0
  142. package/target/test/typescript/xhrCore/ResponseTest.js +257 -0
  143. package/target/test/typescript/xhrCore/ResponseTest.js.map +1 -0
  144. package/target/test/typescript/xhrCore/ShadowDomTest.js +122 -0
  145. package/target/test/typescript/xhrCore/ShadowDomTest.js.map +1 -0
  146. package/target/test/typescript/xhrCore/WebsocketTest.js +182 -0
  147. package/target/test/typescript/xhrCore/WebsocketTest.js.map +1 -0
  148. package/target/test/typescript/xhrCore/XhrFormDataTest.js +58 -0
  149. package/target/test/typescript/xhrCore/XhrFormDataTest.js.map +1 -0
  150. package/webpack.config.js +71 -0
  151. package/webpack.config.js.map +1 -0
  152. package/webpack.config.ts +4 -6
  153. package/dist/window/jsf-development.js.LICENSE.txt +0 -135
  154. package/dist/window/jsf-development.js.br +0 -0
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var sinon = require("sinon");
40
+ var AjaxImpl_1 = require("../../../main/typescript/impl/AjaxImpl");
41
+ var StandardInits_1 = require("../frameworkBase/_ext/shared/StandardInits");
42
+ var protocolPage = StandardInits_1.StandardInits.protocolPage;
43
+ var mona_dish_1 = require("mona-dish");
44
+ var XhrFormData_1 = require("../../../main/typescript/impl/xhrCore/XhrFormData");
45
+ var chai_1 = require("chai");
46
+ describe("test for proper request param patterns identical to the old implementation", function () {
47
+ var DELETE_PATTERN = {
48
+ op: "delete1",
49
+ "javax.faces.source": "cmd_delete",
50
+ "javax.faces.partial.event": "click",
51
+ "javax.faces.partial.ajax": "true",
52
+ "javax.faces.partial.execute": "cmd_delete",
53
+ "form1": "form1",
54
+ "javax.faces.ViewState": "blubbblubblubb"
55
+ };
56
+ var UPDATE_INSERT_2 = {
57
+ "op": "updateinsert2",
58
+ "javax.faces.partial.event": "click",
59
+ "javax.faces.source": "cmd_update_insert2",
60
+ "javax.faces.partial.ajax": "true",
61
+ "javax.faces.partial.execute": "cmd_update_insert2",
62
+ "form1": "form1",
63
+ "javax.faces.ViewState": "blubbblubblubb"
64
+ };
65
+ var ERRORS = {
66
+ "op": "errors",
67
+ "javax.faces.partial.event": "click",
68
+ "javax.faces.source": "cmd_error",
69
+ "javax.faces.partial.ajax": "true",
70
+ "javax.faces.partial.execute": "cmd_error",
71
+ "form1": "form1",
72
+ "javax.faces.ViewState": "blubbblubblubb"
73
+ };
74
+ /**
75
+ * matches two maps for absolute identicality
76
+ */
77
+ var matches = function (item1, item2) {
78
+ if (Object.keys(item1).length != Object.keys(item2).length) {
79
+ return false;
80
+ }
81
+ for (var key in item1) {
82
+ if ((!(key in item2)) || item1[key] != item2[key]) {
83
+ return false;
84
+ }
85
+ }
86
+ return true;
87
+ };
88
+ beforeEach(function () {
89
+ return __awaiter(this, void 0, void 0, function () {
90
+ var waitForResult;
91
+ var _this = this;
92
+ return __generator(this, function (_a) {
93
+ waitForResult = protocolPage();
94
+ return [2 /*return*/, waitForResult.then(function (close) {
95
+ _this.xhr = sinon.useFakeXMLHttpRequest();
96
+ _this.requests = [];
97
+ _this.xhr.onCreate = function (xhr) {
98
+ _this.requests.push(xhr);
99
+ };
100
+ global.XMLHttpRequest = _this.xhr;
101
+ window.XMLHttpRequest = _this.xhr;
102
+ _this.jsfAjaxResponse = sinon.stub(global.jsf.ajax, "response");
103
+ _this.closeIt = function () {
104
+ global.XMLHttpRequest = window.XMLHttpRequest = _this.xhr.restore();
105
+ _this.jsfAjaxResponse.restore();
106
+ AjaxImpl_1.Implementation.reset();
107
+ close();
108
+ };
109
+ })];
110
+ });
111
+ });
112
+ });
113
+ afterEach(function () {
114
+ this.closeIt();
115
+ });
116
+ it("must pass updateinsert2 with proper parameters", function () {
117
+ mona_dish_1.DQ.byId("cmd_update_insert2").click();
118
+ var requestBody = this.requests[0].requestBody;
119
+ var formData = new XhrFormData_1.XhrFormData(requestBody);
120
+ (0, chai_1.expect)(matches(formData.value, UPDATE_INSERT_2)).to.be.true;
121
+ });
122
+ it("must handle base64 encoded strings properly as request data", function () {
123
+ var probe = "YWFhYWFhc1Rlc3RpdCDDpGtvNDU5NjczMDA9PSsrNDU5MGV3b3UkJiUmLyQmJQ==";
124
+ mona_dish_1.DQ.byId("javax.faces.ViewState").inputValue.value = probe;
125
+ mona_dish_1.DQ.byId("cmd_update_insert2").click();
126
+ var requestBody = this.requests[0].requestBody;
127
+ //We check if the base64 encoded string matches the original
128
+ var formData = new XhrFormData_1.XhrFormData(requestBody);
129
+ (0, chai_1.expect)(decodeURIComponent(formData.getIf("javax.faces.ViewState").value) == probe).to.be.true;
130
+ });
131
+ it("must handle empty parameters properly", function () {
132
+ var probe = "";
133
+ mona_dish_1.DQ.byId("javax.faces.ViewState").inputValue.value = probe;
134
+ mona_dish_1.DQ.byId("cmd_update_insert2").click();
135
+ var requestBody = this.requests[0].requestBody;
136
+ //We check if the base64 encoded string matches the original
137
+ var formData = new XhrFormData_1.XhrFormData(requestBody);
138
+ (0, chai_1.expect)(decodeURIComponent(formData.getIf("javax.faces.ViewState").value) == probe).to.be.true;
139
+ });
140
+ //KssbpZfCe+0lwDhgMRQ44wRFkaM1o1lbMMUO3lini5YhXWm6
141
+ it("must handle base64 special cases properly (+ in encoding)", function () {
142
+ var probe = "KssbpZfCe+0lwDhgMRQ44wRFkaM1o1lbMMUO3lini5YhXWm6";
143
+ mona_dish_1.DQ.byId("javax.faces.ViewState").inputValue.value = probe;
144
+ mona_dish_1.DQ.byId("cmd_update_insert2").click();
145
+ var requestBody = this.requests[0].requestBody;
146
+ //We check if the base64 encoded string matches the original
147
+ var formData = new XhrFormData_1.XhrFormData(requestBody);
148
+ (0, chai_1.expect)(decodeURIComponent(formData.getIf("javax.faces.ViewState").value) == probe).to.be.true;
149
+ });
150
+ });
151
+ //# sourceMappingURL=RequestParamsTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestParamsTest.js","sourceRoot":"","sources":["../../../../src/test/typescript/xhrCore/RequestParamsTest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,318 @@
1
+ "use strict";
2
+ /* Licensed to the Apache Software Foundation (ASF) under one or more
3
+ * contributor license agreements. See the NOTICE file distributed with
4
+ * this work for additional information regarding copyright ownership.
5
+ * The ASF licenses this file to you under the Apache License, Version 2.0
6
+ * (the "License"); you may not use this file except in compliance with
7
+ * the License. You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (_) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ var mocha_1 = require("mocha");
55
+ var sinon = require("sinon");
56
+ var chai_1 = require("chai");
57
+ var StandardInits_1 = require("../frameworkBase/_ext/shared/StandardInits");
58
+ var mona_dish_1 = require("mona-dish");
59
+ var Const_1 = require("../../../main/typescript/impl/core/Const");
60
+ var defaultMyFaces = StandardInits_1.StandardInits.defaultMyFaces;
61
+ var STD_XML = StandardInits_1.StandardInits.STD_XML;
62
+ var issueStdReq = function (element) {
63
+ jsf.ajax.request(element, null, {
64
+ execute: "input_1",
65
+ render: "@form",
66
+ pass1: "pass1",
67
+ pass2: "pass2"
68
+ });
69
+ };
70
+ /**
71
+ * specialized tests testing the xhr core behavior when it hits the xmlHttpRequest object
72
+ */
73
+ (0, mocha_1.describe)('Tests on the xhr core when it starts to call the request', function () {
74
+ beforeEach(function () {
75
+ return __awaiter(this, void 0, void 0, function () {
76
+ var waitForResult;
77
+ var _this = this;
78
+ return __generator(this, function (_a) {
79
+ waitForResult = defaultMyFaces();
80
+ return [2 /*return*/, waitForResult.then(function (close) {
81
+ _this.xhr = sinon.useFakeXMLHttpRequest();
82
+ _this.requests = [];
83
+ _this.xhr.onCreate = function (xhr) {
84
+ _this.requests.push(xhr);
85
+ };
86
+ global.XMLHttpRequest = _this.xhr;
87
+ window.XMLHttpRequest = _this.xhr;
88
+ _this.jsfAjaxResponse = sinon.spy(global.jsf.ajax, "response");
89
+ _this.closeIt = function () {
90
+ global.XMLHttpRequest = window.XMLHttpRequest = _this.xhr.restore();
91
+ _this.jsfAjaxResponse.restore();
92
+ Implementation.reset();
93
+ close();
94
+ };
95
+ })];
96
+ });
97
+ });
98
+ });
99
+ afterEach(function () {
100
+ this.closeIt();
101
+ });
102
+ (0, mocha_1.it)('must have the standard parameters all in', function (done) {
103
+ //issue a standard jsf.ajax.request upon the standard simple form case and check the passed parameters
104
+ //and whether send was called
105
+ var send = sinon.spy(XMLHttpRequest.prototype, "send");
106
+ try {
107
+ var element = mona_dish_1.DomQuery.byId("input_2").getAsElem(0).value;
108
+ issueStdReq(element);
109
+ (0, chai_1.expect)(this.requests.length).to.eq(1);
110
+ (0, chai_1.expect)(this.requests[0].method).to.eq("POST");
111
+ (0, chai_1.expect)(this.requests[0].async).to.be.true;
112
+ (0, chai_1.expect)(send.called).to.be.true;
113
+ (0, chai_1.expect)(send.callCount).to.eq(1);
114
+ //sent params javax.faces.ViewState=null&execute=input_1&render=%40form&pass1=pass1&pass2=pass2&javax.faces.windowId=null&javax.faces.source=input_2&javax.faces.partial.ajax=input_2&blarg=blarg&javax.faces.partial.execute=input_1%20input_2&javax.faces.partial.render=blarg
115
+ }
116
+ finally {
117
+ send.restore();
118
+ }
119
+ done();
120
+ });
121
+ (0, mocha_1.it)('it must have the pass through values properly passed', function (done) {
122
+ var send = sinon.spy(XMLHttpRequest.prototype, "send");
123
+ try {
124
+ var element = mona_dish_1.DomQuery.byId("input_2").getAsElem(0).value;
125
+ issueStdReq(element);
126
+ (0, chai_1.expect)(send.called).to.be.true;
127
+ var argsVal = send.args[0][0];
128
+ var arsArr = argsVal.split("&");
129
+ var resultsMap = {};
130
+ for (var _i = 0, arsArr_1 = arsArr; _i < arsArr_1.length; _i++) {
131
+ var val = arsArr_1[_i];
132
+ var keyVal = val.split("=");
133
+ resultsMap[keyVal[0]] = keyVal[1];
134
+ }
135
+ (0, chai_1.expect)(resultsMap["pass1"]).to.eq("pass1");
136
+ (0, chai_1.expect)(resultsMap["pass2"]).to.eq("pass2");
137
+ (0, chai_1.expect)(!!resultsMap["render"]).to.be.false;
138
+ (0, chai_1.expect)(!!resultsMap["execute"]).to.be.false;
139
+ (0, chai_1.expect)(Const_1.P_WINDOW_ID in resultsMap).to.be.false;
140
+ (0, chai_1.expect)(Const_1.P_VIEWSTATE in resultsMap).to.be.true;
141
+ (0, chai_1.expect)(resultsMap[Const_1.P_PARTIAL_SOURCE]).to.eq("input_2");
142
+ (0, chai_1.expect)(resultsMap[Const_1.P_AJAX]).to.eq("true");
143
+ (0, chai_1.expect)(resultsMap[Const_1.P_RENDER]).to.eq("blarg");
144
+ (0, chai_1.expect)(resultsMap[Const_1.P_EXECUTE]).to.eq("input_1%20input_2");
145
+ }
146
+ finally {
147
+ send.restore();
148
+ }
149
+ done();
150
+ });
151
+ (0, mocha_1.it)('it must have the proper target type', function (done) {
152
+ var send = sinon.spy(XMLHttpRequest.prototype, "send");
153
+ try {
154
+ var element = mona_dish_1.DomQuery.byId("input_2").getAsElem(0).value;
155
+ issueStdReq(element);
156
+ (0, chai_1.expect)(this.requests[0].requestHeaders.Accept.indexOf("application/xml") != -1).to.be.true;
157
+ }
158
+ finally {
159
+ send.restore();
160
+ }
161
+ done();
162
+ });
163
+ });
164
+ (0, mocha_1.describe)('Tests after core when it hits response', function () {
165
+ beforeEach(function () {
166
+ return __awaiter(this, void 0, void 0, function () {
167
+ var waitForResult;
168
+ var _this = this;
169
+ return __generator(this, function (_a) {
170
+ waitForResult = defaultMyFaces();
171
+ return [2 /*return*/, waitForResult.then(function (close) {
172
+ _this.xhr = sinon.useFakeXMLHttpRequest();
173
+ _this.requests = [];
174
+ _this.xhr.onCreate = function (xhr) {
175
+ _this.requests.push(xhr);
176
+ };
177
+ global.XMLHttpRequest = _this.xhr = sinon.useFakeXMLHttpRequest();
178
+ window.XMLHttpRequest = _this.xhr = sinon.useFakeXMLHttpRequest();
179
+ _this.jsfAjaxResponse = sinon.spy(global.jsf.ajax, "response");
180
+ _this.closeIt = function () {
181
+ global.XMLHttpRequest = window.XMLHttpRequest = _this.xhr.restore();
182
+ _this.jsfAjaxResponse.restore();
183
+ Implementation.reset();
184
+ close();
185
+ };
186
+ })];
187
+ });
188
+ });
189
+ });
190
+ afterEach(function () {
191
+ this.closeIt();
192
+ });
193
+ (0, mocha_1.it)('must have passed all ajax request phase events', function (done) {
194
+ var send = sinon.spy(XMLHttpRequest.prototype, "send");
195
+ var globalCnt = 0;
196
+ var localCnt = 0;
197
+ try {
198
+ var element = mona_dish_1.DomQuery.byId("input_2").getAsElem(0).value;
199
+ jsf.ajax.addOnEvent(function () {
200
+ globalCnt++;
201
+ });
202
+ jsf.ajax.request(element, null, {
203
+ execute: "input_1",
204
+ render: "@form",
205
+ pass1: "pass1",
206
+ pass2: "pass2",
207
+ onevent: function (evt) {
208
+ localCnt++;
209
+ }
210
+ });
211
+ var xhrReq = this.requests[0];
212
+ xhrReq.respond(200, { 'Content-Type': 'text/xml' }, STD_XML);
213
+ (0, chai_1.expect)(this.jsfAjaxResponse.callCount).to.eq(1);
214
+ //success ommitted due to fake response
215
+ (0, chai_1.expect)(globalCnt == 3).to.eq(true);
216
+ (0, chai_1.expect)(localCnt == 3).to.eq(true);
217
+ done();
218
+ }
219
+ catch (e) {
220
+ console.error(e);
221
+ }
222
+ finally {
223
+ send.restore();
224
+ }
225
+ });
226
+ (0, mocha_1.it)('it must have called request and the pass through values must be properly transferred into the context', function (done) {
227
+ var _this = this;
228
+ var send = sinon.spy(XMLHttpRequest.prototype, "send");
229
+ var globalCnt = 0;
230
+ var localCnt = 0;
231
+ var xhrReq = null;
232
+ try {
233
+ var element = mona_dish_1.DomQuery.byId("input_2").getAsElem(0).value;
234
+ jsf.ajax.addOnEvent(function () {
235
+ globalCnt++;
236
+ });
237
+ jsf.ajax.request(element, null, {
238
+ execute: "input_1",
239
+ render: "@form",
240
+ pass1: "pass1",
241
+ pass2: "pass2",
242
+ onevent: function (evt) {
243
+ localCnt++;
244
+ if (evt.status == Const_1.COMPLETE) {
245
+ (0, chai_1.expect)(!!xhrReq.responseXML).to.be.true;
246
+ }
247
+ if (evt.status == Const_1.SUCCESS) {
248
+ (0, chai_1.expect)(_this.jsfAjaxResponse.callCount).to.eq(1);
249
+ (0, chai_1.expect)(_this.jsfAjaxResponse.firstCall.args[0] instanceof XMLHttpRequest).to.be.true;
250
+ var lastArg = _this.jsfAjaxResponse.firstCall.args[1];
251
+ (0, chai_1.expect)(lastArg.onevent != null).to.be.true;
252
+ (0, chai_1.expect)(lastArg.onevent instanceof Function).to.be.true;
253
+ (0, chai_1.expect)(!!lastArg.onError).to.be.false;
254
+ (0, chai_1.expect)(lastArg.pass1 == "pass1").to.be.true;
255
+ (0, chai_1.expect)(lastArg.pass2 == "pass2").to.be.true;
256
+ (0, chai_1.expect)(!!lastArg[Const_1.P_PARTIAL_SOURCE]).to.be.true;
257
+ (0, chai_1.expect)(!!lastArg[Const_1.P_AJAX]).to.be.true;
258
+ (0, chai_1.expect)(!!lastArg[Const_1.P_EXECUTE]).to.be.true;
259
+ (0, chai_1.expect)(!!lastArg[Const_1.P_RENDER]).to.be.true;
260
+ (0, chai_1.expect)(_this.jsfAjaxResponse.firstCall.args.length).to.eq(2);
261
+ (0, chai_1.expect)(globalCnt == 2).to.eq(true); //local before global
262
+ (0, chai_1.expect)(localCnt == 3).to.eq(true);
263
+ done();
264
+ }
265
+ }
266
+ });
267
+ xhrReq = this.requests[0];
268
+ xhrReq.responsetype = "text/xml";
269
+ xhrReq.respond(200, { 'Content-Type': 'text/xml' }, STD_XML);
270
+ }
271
+ catch (e) {
272
+ console.error(e);
273
+ }
274
+ finally {
275
+ send.restore();
276
+ }
277
+ });
278
+ (0, mocha_1.it)('it must have called onError in the error case', function (done) {
279
+ //on hold until it is clear why sinon is not giving me the response XML as expected
280
+ var send = sinon.spy(XMLHttpRequest.prototype, "send");
281
+ var xhrReq = null;
282
+ try {
283
+ var errorCnt = 0;
284
+ var element = mona_dish_1.DomQuery.byId("input_2").getAsElem(0).value;
285
+ jsf.ajax.request(element, null, {
286
+ execute: "input_1",
287
+ render: "@form",
288
+ pass1: "pass1",
289
+ pass2: "pass2",
290
+ onerror: function (error) {
291
+ (0, chai_1.expect)(error.type).to.eq("error");
292
+ (0, chai_1.expect)(!!error.status).to.eq(true);
293
+ (0, chai_1.expect)(!!error.message).to.eq(true);
294
+ (0, chai_1.expect)(!!error.source).to.eq(true);
295
+ (0, chai_1.expect)(!!error.responseCode).to.eq(true);
296
+ (0, chai_1.expect)(!!error.responseText).to.eq(true);
297
+ (0, chai_1.expect)(!error.responseXML).to.eq(true);
298
+ done();
299
+ },
300
+ onevent: function (evt) {
301
+ if (evt.status == Const_1.COMPLETE) {
302
+ throw Error("This error is wanted, ignore the log");
303
+ }
304
+ }
305
+ });
306
+ xhrReq = this.requests[0];
307
+ xhrReq.responsetype = "text/xml";
308
+ xhrReq.respond(200, { 'Content-Type': 'text/xml' }, STD_XML);
309
+ }
310
+ catch (e) {
311
+ console.error(e);
312
+ }
313
+ finally {
314
+ send.restore();
315
+ }
316
+ });
317
+ });
318
+ //# sourceMappingURL=RequestTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestTest.js","sourceRoot":"","sources":["../../../../src/test/typescript/xhrCore/RequestTest.ts"],"names":[],"mappings":"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"}