jsf.js_next_gen 4.0.1-beta.2 → 4.0.1-beta.4
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.
- package/README.md +6 -0
- package/dist/docs/assets/search.js +1 -1
- package/dist/docs/functions/myfaces.ab.html +1 -1
- package/dist/docs/functions/{myfaces.onOnDomReady.html → myfaces.onDomReady.html} +5 -5
- package/dist/docs/index.html +9 -0
- package/dist/docs/modules/myfaces.html +2 -2
- package/dist/docs/variables/myfaces.oam.html +1 -1
- package/dist/window/faces-development.js +1292 -1296
- package/dist/window/faces-development.js.br +0 -0
- package/dist/window/faces-development.js.gz +0 -0
- package/dist/window/faces-development.js.map +1 -1
- package/dist/window/faces.js +1 -1
- package/dist/window/faces.js.br +0 -0
- package/dist/window/faces.js.gz +0 -0
- package/dist/window/faces.js.map +1 -1
- package/dist/window/jsf-development.js +1292 -1296
- package/dist/window/jsf-development.js.br +0 -0
- package/dist/window/jsf-development.js.gz +0 -0
- package/dist/window/jsf-development.js.map +1 -1
- package/dist/window/jsf.js +1 -1
- package/dist/window/jsf.js.br +0 -0
- package/dist/window/jsf.js.gz +0 -0
- package/dist/window/jsf.js.map +1 -1
- package/package.json +5 -5
- package/plans for 4.0.1.txt +8 -0
- package/src/main/typescript/api/_api.ts +1 -1
- package/src/main/typescript/impl/AjaxImpl.ts +63 -47
- package/src/main/typescript/impl/core/Const.ts +5 -2
- package/src/main/typescript/impl/util/AsyncRunnable.ts +81 -6
- package/src/main/typescript/impl/util/ExtDomQuery.ts +7 -9
- package/src/main/typescript/impl/util/FileUtils.ts +26 -22
- package/src/main/typescript/impl/util/HiddenInputBuilder.ts +7 -3
- package/src/main/typescript/impl/util/Lang.ts +62 -4
- package/src/main/typescript/impl/util/XhrQueueController.ts +112 -0
- package/src/main/typescript/impl/xhrCore/EventData.ts +3 -3
- package/src/main/typescript/impl/xhrCore/ResponseProcessor.ts +12 -10
- package/src/main/typescript/impl/xhrCore/XhrFormData.ts +33 -19
- package/src/main/typescript/impl/xhrCore/XhrRequest.ts +51 -72
- package/src/main/typescript/myfaces/OamSubmit.ts +6 -6
- package/src/main/typescript/test/frameworkBase/_ext/monadish/DomQueryTest.spec.ts +179 -40
- package/src/main/typescript/test/frameworkBase/_ext/monadish/MonadTest.spec.ts +4 -4
- package/src/main/typescript/test/frameworkBase/_ext/monadish/fixtures/blank.css +0 -0
- package/src/main/typescript/test/frameworkBase/_ext/monadish/markups/tobago-with-header.ts +921 -0
- package/src/main/typescript/test/frameworkBase/_ext/monadish/markups/tobago-without-header.ts +108 -0
- package/src/main/typescript/test/frameworkBase/_ext/shared/StandardInits.ts +3 -2
- package/src/main/typescript/test/frameworkBase/_ext/shared/fixtures/jakarta.faces.resource/faces.js.jsf +0 -0
- package/src/main/typescript/test/impl/ImplTest.spec.ts +24 -6
- package/src/main/typescript/test/myfaces/OnLoadSpec.ts +52 -0
- package/src/main/typescript/test/queue/AsynchronousProbe.ts +5 -5
- package/src/main/typescript/test/queue/AsynchronousQueueTest.spec.ts +4 -3
- package/src/main/typescript/test/xhrCore/EventTests.spec.ts +28 -22
- package/src/main/typescript/test/xhrCore/FileUploadTest.spec.ts +9 -1
- package/src/main/typescript/test/xhrCore/NamespacesRequestTest.spec.ts +13 -5
- package/src/main/typescript/test/xhrCore/OamSubmitTest.spec.ts +9 -2
- package/src/main/typescript/test/xhrCore/RequestParamsTest.spec.ts +2 -2
- package/src/main/typescript/test/xhrCore/RequestTest.spec.ts +89 -8
- package/src/main/typescript/test/xhrCore/RequestTest_23.spec.ts +6 -1
- package/src/main/typescript/test/xhrCore/ResponseTest.spec.ts +32 -24
- package/src/main/typescript/test/xhrCore/TobagoFileUploadTest.spec.ts +9 -1
- package/src/main/typescript/test/xhrCore/WebsocketTest.ts +10 -3
- package/src/main/typescript/test/xhrCore/XhrFormDataTest.spec.ts +9 -2
- package/target/api/_api.js +2 -2
- package/target/api/_api.js.map +1 -1
- package/target/impl/AjaxImpl.js +51 -41
- package/target/impl/AjaxImpl.js.map +1 -1
- package/target/impl/core/Const.js +7 -5
- package/target/impl/core/Const.js.map +1 -1
- package/target/impl/util/AsyncRunnable.js +60 -0
- package/target/impl/util/AsyncRunnable.js.map +1 -1
- package/target/impl/util/ExtDomQuery.js +8 -8
- package/target/impl/util/ExtDomQuery.js.map +1 -1
- package/target/impl/util/FileUtils.js +21 -19
- package/target/impl/util/FileUtils.js.map +1 -1
- package/target/impl/util/HiddenInputBuilder.js +7 -3
- package/target/impl/util/HiddenInputBuilder.js.map +1 -1
- package/target/impl/util/Lang.js +53 -1
- package/target/impl/util/Lang.js.map +1 -1
- package/target/impl/xhrCore/EventData.js +2 -2
- package/target/impl/xhrCore/EventData.js.map +1 -1
- package/target/impl/xhrCore/ResponseProcessor.js +9 -7
- package/target/impl/xhrCore/ResponseProcessor.js.map +1 -1
- package/target/impl/xhrCore/XhrFormData.js +30 -15
- package/target/impl/xhrCore/XhrFormData.js.map +1 -1
- package/target/impl/xhrCore/XhrRequest.js +43 -64
- package/target/impl/xhrCore/XhrRequest.js.map +1 -1
- package/target/myfaces/OamSubmit.js +5 -3
- package/target/myfaces/OamSubmit.js.map +1 -1
- package/target/test/frameworkBase/_ext/monadish/DomQueryTest.spec.js +138 -37
- package/target/test/frameworkBase/_ext/monadish/DomQueryTest.spec.js.map +1 -1
- package/target/test/frameworkBase/_ext/monadish/MonadTest.spec.js +4 -4
- package/target/test/frameworkBase/_ext/monadish/MonadTest.spec.js.map +1 -1
- package/target/test/frameworkBase/_ext/shared/StandardInits.js +3 -2
- package/target/test/frameworkBase/_ext/shared/StandardInits.js.map +1 -1
- package/target/test/impl/ImplTest.spec.js +19 -1
- package/target/test/impl/ImplTest.spec.js.map +1 -1
- package/target/test/queue/AsynchronousQueueTest.spec.js +3 -3
- package/target/test/queue/AsynchronousQueueTest.spec.js.map +1 -1
- package/target/test/xhrCore/EventTests.spec.js +26 -19
- package/target/test/xhrCore/EventTests.spec.js.map +1 -1
- package/target/test/xhrCore/FileUploadTest.spec.js +8 -0
- package/target/test/xhrCore/FileUploadTest.spec.js.map +1 -1
- package/target/test/xhrCore/NamespacesRequestTest.spec.js +11 -3
- package/target/test/xhrCore/NamespacesRequestTest.spec.js.map +1 -1
- package/target/test/xhrCore/OamSubmitTest.spec.js +8 -0
- package/target/test/xhrCore/OamSubmitTest.spec.js.map +1 -1
- package/target/test/xhrCore/RequestParamsTest.spec.js +1 -1
- package/target/test/xhrCore/RequestParamsTest.spec.js.map +1 -1
- package/target/test/xhrCore/RequestTest.spec.js +81 -4
- package/target/test/xhrCore/RequestTest.spec.js.map +1 -1
- package/target/test/xhrCore/RequestTest_23.spec.js +6 -0
- package/target/test/xhrCore/RequestTest_23.spec.js.map +1 -1
- package/target/test/xhrCore/ResponseTest.spec.js +30 -15
- package/target/test/xhrCore/ResponseTest.spec.js.map +1 -1
- package/target/test/xhrCore/TobagoFileUploadTest.spec.js +8 -0
- package/target/test/xhrCore/TobagoFileUploadTest.spec.js.map +1 -1
- package/target/test/xhrCore/WebsocketTest.js +9 -0
- package/target/test/xhrCore/WebsocketTest.js.map +1 -1
- package/target/test/xhrCore/XhrFormDataTest.spec.js +8 -0
- package/target/test/xhrCore/XhrFormDataTest.spec.js.map +1 -1
- package/src/main/typescript/impl/util/AsyncQueue.ts +0 -133
- package/src/main/typescript/test/frameworkBase/_ext/monadish/StreamTest.spec.ts +0 -231
|
@@ -18,12 +18,12 @@ import {describe, it} from "mocha";
|
|
|
18
18
|
import * as sinon from "sinon";
|
|
19
19
|
import {expect} from "chai";
|
|
20
20
|
import {StandardInits} from "../frameworkBase/_ext/shared/StandardInits";
|
|
21
|
-
import {DomQuery} from "mona-dish";
|
|
21
|
+
import {_Es2019Array, DomQuery} from "mona-dish";
|
|
22
22
|
import {
|
|
23
23
|
COMPLETE, EMPTY_STR,
|
|
24
24
|
P_AJAX,
|
|
25
25
|
P_EXECUTE,
|
|
26
|
-
|
|
26
|
+
P_AJAX_SOURCE,
|
|
27
27
|
P_RENDER,
|
|
28
28
|
P_VIEWSTATE,
|
|
29
29
|
P_WINDOW_ID,
|
|
@@ -45,11 +45,34 @@ let issueStdReq = function (element) {
|
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
47
|
};
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
let issueStdPPSReq = function (element) {
|
|
51
|
+
faces.ajax.request(element, null, {
|
|
52
|
+
execute: "input_1",
|
|
53
|
+
render: "@form",
|
|
54
|
+
/*
|
|
55
|
+
* myfaces is the extension placeholder, atm only pps is used
|
|
56
|
+
* which was the most useful extension in our legacy codebase
|
|
57
|
+
*/
|
|
58
|
+
myfaces: {
|
|
59
|
+
pps: true
|
|
60
|
+
},
|
|
61
|
+
/*
|
|
62
|
+
* params is the spec conform way to pass additional request paramerters
|
|
63
|
+
*/
|
|
64
|
+
params: {
|
|
65
|
+
pass1: "pass1",
|
|
66
|
+
pass2: "pass2"
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
|
|
48
71
|
/**
|
|
49
72
|
* specialized tests testing the xhr core behavior when it hits the xmlHttpRequest object
|
|
50
73
|
*/
|
|
51
74
|
describe('Tests on the xhr core when it starts to call the request', function () {
|
|
52
|
-
|
|
75
|
+
let oldFlatMap = null;
|
|
53
76
|
beforeEach(async function () {
|
|
54
77
|
|
|
55
78
|
let waitForResult = defaultMyFaces();
|
|
@@ -65,6 +88,9 @@ describe('Tests on the xhr core when it starts to call the request', function ()
|
|
|
65
88
|
window.XMLHttpRequest = this.xhr;
|
|
66
89
|
|
|
67
90
|
this.jsfAjaxResponse = sinon.spy((<any>global).faces.ajax, "response");
|
|
91
|
+
oldFlatMap =Array.prototype["flatMap"];
|
|
92
|
+
window["Es2019Array"] = _Es2019Array;
|
|
93
|
+
delete Array.prototype["flatMap"];
|
|
68
94
|
|
|
69
95
|
this.closeIt = () => {
|
|
70
96
|
(<any>global).XMLHttpRequest = window.XMLHttpRequest = this.xhr.restore();
|
|
@@ -77,6 +103,10 @@ describe('Tests on the xhr core when it starts to call the request', function ()
|
|
|
77
103
|
|
|
78
104
|
afterEach(function () {
|
|
79
105
|
this.closeIt();
|
|
106
|
+
if(oldFlatMap) {
|
|
107
|
+
Array.prototype["flatMap"] = oldFlatMap;
|
|
108
|
+
oldFlatMap = null;
|
|
109
|
+
}
|
|
80
110
|
});
|
|
81
111
|
|
|
82
112
|
it('must have the standard parameters all in', function (done) {
|
|
@@ -119,13 +149,16 @@ describe('Tests on the xhr core when it starts to call the request', function ()
|
|
|
119
149
|
resultsMap[keyVal[0]] = keyVal[1];
|
|
120
150
|
}
|
|
121
151
|
|
|
152
|
+
// normal request, all issuing form must be encoded!
|
|
153
|
+
expect(!!(resultsMap?.["input_2_text"] ?? false)).to.eq(true);
|
|
154
|
+
expect(!!(resultsMap?.["input_1"] ?? false)).to.eq(true);
|
|
122
155
|
expect(resultsMap["pass1"]).to.eq("pass1");
|
|
123
156
|
expect(resultsMap["pass2"]).to.eq("pass2");
|
|
124
157
|
expect(!!resultsMap["render"]).to.be.false;
|
|
125
158
|
expect(!!resultsMap["execute"]).to.be.false;
|
|
126
159
|
expect(P_WINDOW_ID in resultsMap).to.be.false;
|
|
127
160
|
expect(P_VIEWSTATE in resultsMap).to.be.true;
|
|
128
|
-
expect(resultsMap[
|
|
161
|
+
expect(resultsMap[P_AJAX_SOURCE]).to.eq("input_2");
|
|
129
162
|
expect(resultsMap[P_AJAX]).to.eq("true");
|
|
130
163
|
expect(resultsMap[P_RENDER]).to.eq("blarg");
|
|
131
164
|
expect(resultsMap[P_EXECUTE]).to.eq("input_1%20input_2");
|
|
@@ -292,7 +325,7 @@ describe('Tests after core when it hits response', function () {
|
|
|
292
325
|
expect(!!lastArg.onError).to.be.false;
|
|
293
326
|
expect(lastArg.pass1 == "pass1").to.be.true;
|
|
294
327
|
expect(lastArg.pass2 == "pass2").to.be.true;
|
|
295
|
-
expect(!!lastArg[
|
|
328
|
+
expect(!!lastArg[P_AJAX_SOURCE]).to.be.true;
|
|
296
329
|
expect(!!lastArg[P_AJAX]).to.be.true;
|
|
297
330
|
expect(!!lastArg[P_EXECUTE]).to.be.true;
|
|
298
331
|
expect(!!lastArg[P_RENDER]).to.be.true;
|
|
@@ -354,7 +387,7 @@ describe('Tests after core when it hits response', function () {
|
|
|
354
387
|
expect(!!lastArg.onError).to.be.false;
|
|
355
388
|
expect(lastArg.pass1 == "pass1").to.be.true;
|
|
356
389
|
expect(lastArg.pass2 == "pass2").to.be.true;
|
|
357
|
-
expect(!!lastArg[
|
|
390
|
+
expect(!!lastArg[P_AJAX_SOURCE]).to.be.true;
|
|
358
391
|
expect(!!lastArg[P_AJAX]).to.be.true;
|
|
359
392
|
expect(!!lastArg[P_EXECUTE]).to.be.true;
|
|
360
393
|
expect(!!lastArg[P_RENDER]).to.be.true;
|
|
@@ -417,7 +450,7 @@ describe('Tests after core when it hits response', function () {
|
|
|
417
450
|
expect(!!lastArg.onError).to.be.false;
|
|
418
451
|
expect(lastArg.pass1 == "pass1").to.be.true;
|
|
419
452
|
expect(lastArg.pass2 == "pass2").to.be.true;
|
|
420
|
-
expect(!!lastArg[
|
|
453
|
+
expect(!!lastArg[P_AJAX_SOURCE]).to.be.true;
|
|
421
454
|
expect(!!lastArg[P_AJAX]).to.be.true;
|
|
422
455
|
expect(!!lastArg[P_EXECUTE]).to.be.true;
|
|
423
456
|
expect(!!lastArg[P_RENDER]).to.be.true;
|
|
@@ -451,9 +484,10 @@ describe('Tests after core when it hits response', function () {
|
|
|
451
484
|
|
|
452
485
|
let send = sinon.spy(XMLHttpRequest.prototype, "send");
|
|
453
486
|
let xhrReq = null;
|
|
454
|
-
|
|
487
|
+
const oldErr = console.error;
|
|
455
488
|
try {
|
|
456
489
|
let errorCnt = 0;
|
|
490
|
+
|
|
457
491
|
let element = DomQuery.byId("input_2").getAsElem(0).value;
|
|
458
492
|
faces.ajax.request(element, null, {
|
|
459
493
|
execute: "input_1",
|
|
@@ -474,6 +508,8 @@ describe('Tests after core when it hits response', function () {
|
|
|
474
508
|
},
|
|
475
509
|
onevent: (evt: any) => {
|
|
476
510
|
if (evt.status == COMPLETE) {
|
|
511
|
+
console.error = () => {
|
|
512
|
+
};
|
|
477
513
|
throw Error("This error is wanted, ignore the log");
|
|
478
514
|
}
|
|
479
515
|
}
|
|
@@ -484,9 +520,13 @@ describe('Tests after core when it hits response', function () {
|
|
|
484
520
|
xhrReq.respond(200, {'Content-Type': 'text/xml'}, STD_XML);
|
|
485
521
|
|
|
486
522
|
} catch (e) {
|
|
523
|
+
if (e.message.indexOf("This error is wanted") != -1) {
|
|
524
|
+
return;
|
|
525
|
+
}
|
|
487
526
|
console.error(e);
|
|
488
527
|
|
|
489
528
|
} finally {
|
|
529
|
+
console.error = oldErr;
|
|
490
530
|
send.restore();
|
|
491
531
|
}
|
|
492
532
|
|
|
@@ -557,6 +597,47 @@ describe('Tests after core when it hits response', function () {
|
|
|
557
597
|
done("Expecting a client error to be thrown")
|
|
558
598
|
});
|
|
559
599
|
|
|
600
|
+
it("must have a proper working myfaces.pps = true, partial page submit", function (done) {
|
|
601
|
+
/**
|
|
602
|
+
* derived from the passthrough test
|
|
603
|
+
*/
|
|
604
|
+
let send = sinon.spy(XMLHttpRequest.prototype, "send");
|
|
605
|
+
try {
|
|
606
|
+
//we only issue input 1
|
|
607
|
+
let element = DomQuery.byId("input_1").getAsElem(0).value;
|
|
608
|
+
issueStdPPSReq(element);
|
|
609
|
+
|
|
610
|
+
expect(send.called).to.be.true;
|
|
611
|
+
let argsVal: any = send.args[0][0];
|
|
612
|
+
let arsArr = argsVal.split("&");
|
|
613
|
+
let resultsMap = {};
|
|
614
|
+
for (let val of arsArr) {
|
|
615
|
+
let keyVal = val.split("=");
|
|
616
|
+
resultsMap[keyVal[0]] = keyVal[1];
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
expect(resultsMap?.["input_2_text"] ?? false).to.eq(false);
|
|
620
|
+
expect(!!(resultsMap?.["input_1"] ?? false)).to.eq(true);
|
|
621
|
+
expect(resultsMap["pass1"]).to.eq("pass1");
|
|
622
|
+
expect(resultsMap["pass2"]).to.eq("pass2");
|
|
623
|
+
expect(!!resultsMap["render"]).to.be.false;
|
|
624
|
+
expect(!!resultsMap["execute"]).to.be.false;
|
|
625
|
+
expect(P_WINDOW_ID in resultsMap).to.be.false;
|
|
626
|
+
expect(P_VIEWSTATE in resultsMap).to.be.true;
|
|
627
|
+
expect(resultsMap[P_AJAX_SOURCE]).to.eq("input_1");
|
|
628
|
+
expect(resultsMap[P_AJAX]).to.eq("true");
|
|
629
|
+
expect(resultsMap[P_RENDER]).to.eq("blarg");
|
|
630
|
+
expect(resultsMap[P_EXECUTE]).to.eq("input_1");
|
|
631
|
+
|
|
632
|
+
|
|
633
|
+
// TODO the request map only has the params and input1_ and input_2 passed no matter now many other values
|
|
634
|
+
// we might have to add some input elements into the form which are filetered out
|
|
635
|
+
} finally {
|
|
636
|
+
send.restore();
|
|
637
|
+
}
|
|
638
|
+
done();
|
|
639
|
+
});
|
|
640
|
+
|
|
560
641
|
|
|
561
642
|
});
|
|
562
643
|
|
|
@@ -324,7 +324,7 @@ describe('Tests after core when it hits response', function () {
|
|
|
324
324
|
|
|
325
325
|
let send = sinon.spy(XMLHttpRequest.prototype, "send");
|
|
326
326
|
let xhrReq = null;
|
|
327
|
-
|
|
327
|
+
let oldErr = console.error;
|
|
328
328
|
try {
|
|
329
329
|
let element = DomQuery.byId("input_2").getAsElem(0).value;
|
|
330
330
|
jsf.ajax.request(element, null, {
|
|
@@ -344,6 +344,7 @@ describe('Tests after core when it hits response', function () {
|
|
|
344
344
|
},
|
|
345
345
|
onevent: (evt: any) => {
|
|
346
346
|
if (evt.status == COMPLETE) {
|
|
347
|
+
console.error = () => {};
|
|
347
348
|
throw Error("This error is wanted, ignore the log");
|
|
348
349
|
}
|
|
349
350
|
}
|
|
@@ -354,9 +355,13 @@ describe('Tests after core when it hits response', function () {
|
|
|
354
355
|
xhrReq.respond(200, {'Content-Type': 'text/xml'}, STD_XML);
|
|
355
356
|
|
|
356
357
|
} catch (e) {
|
|
358
|
+
if(e.message.indexOf("This error is wanted") != -1) {
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
357
361
|
console.error(e);
|
|
358
362
|
|
|
359
363
|
} finally {
|
|
364
|
+
console.error = oldErr;
|
|
360
365
|
send.restore();
|
|
361
366
|
}
|
|
362
367
|
|
|
@@ -21,7 +21,7 @@ import * as sinon from "sinon";
|
|
|
21
21
|
|
|
22
22
|
import {XmlResponses} from "../frameworkBase/_ext/shared/XmlResponses";
|
|
23
23
|
import {expect} from "chai";
|
|
24
|
-
import {DomQuery, DQ, DQ$} from "mona-dish";
|
|
24
|
+
import {_Es2019Array, DomQuery, DQ, DQ$} from "mona-dish";
|
|
25
25
|
import protocolPage = StandardInits.protocolPage;
|
|
26
26
|
|
|
27
27
|
|
|
@@ -35,7 +35,7 @@ declare var Implementation: any;
|
|
|
35
35
|
* we do not need to go through the entire ajax cycle for that.
|
|
36
36
|
*/
|
|
37
37
|
describe('Tests of the various aspects of the response protocol functionality', function () {
|
|
38
|
-
|
|
38
|
+
let oldFlatMap = null;
|
|
39
39
|
beforeEach(async function () {
|
|
40
40
|
let waitForResult = protocolPage();
|
|
41
41
|
return waitForResult.then((close) => {
|
|
@@ -55,6 +55,9 @@ describe('Tests of the various aspects of the response protocol functionality',
|
|
|
55
55
|
};
|
|
56
56
|
(<any>global).XMLHttpRequest = this.xhr;
|
|
57
57
|
window.XMLHttpRequest = this.xhr;
|
|
58
|
+
oldFlatMap =Array.prototype["flatMap"];
|
|
59
|
+
window["Es2019Array"] = _Es2019Array;
|
|
60
|
+
delete Array.prototype["flatMap"];
|
|
58
61
|
|
|
59
62
|
this.closeIt = () => {
|
|
60
63
|
(<any>global).XMLHttpRequest = window.XMLHttpRequest = this.xhr.restore();
|
|
@@ -66,6 +69,10 @@ describe('Tests of the various aspects of the response protocol functionality',
|
|
|
66
69
|
|
|
67
70
|
afterEach(function () {
|
|
68
71
|
this.closeIt();
|
|
72
|
+
if(oldFlatMap) {
|
|
73
|
+
Array.prototype["flatMap"] = oldFlatMap;
|
|
74
|
+
oldFlatMap = null;
|
|
75
|
+
}
|
|
69
76
|
});
|
|
70
77
|
|
|
71
78
|
it("must have a simple field updated as well as the viewstate", function (done) {
|
|
@@ -517,7 +524,6 @@ describe('Tests of the various aspects of the response protocol functionality',
|
|
|
517
524
|
</partial-response>`
|
|
518
525
|
|
|
519
526
|
window.document.body.innerHTML = INNER_HTML_MULIT_VIEW;
|
|
520
|
-
global["debug4"] = true;
|
|
521
527
|
faces.ajax.request(window.document.getElementById("viewroot_1:submit_1"), null, {
|
|
522
528
|
"javax.faces.behavior.event": "change",
|
|
523
529
|
execute: "submit_1",
|
|
@@ -675,7 +681,7 @@ describe('Tests of the various aspects of the response protocol functionality',
|
|
|
675
681
|
});
|
|
676
682
|
|
|
677
683
|
//TODO xhr stubbing, to check if the viewId is prepended in render!
|
|
678
|
-
|
|
684
|
+
global["state_1"] = true;
|
|
679
685
|
this.respond(`<?xml version="1.0" encoding="UTF-8"?>
|
|
680
686
|
<partial-response id="viewroot_1">
|
|
681
687
|
<changes>
|
|
@@ -727,35 +733,37 @@ describe('Tests of the various aspects of the response protocol functionality',
|
|
|
727
733
|
it('must handle a ViewExpired Error correctly, and only once in a listener', function (done) {
|
|
728
734
|
|
|
729
735
|
document.body.innerHTML = TCK_790_NAV_MARKUP;
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
736
|
+
const oldErr = console.error;
|
|
737
|
+
console.error = () => {};
|
|
738
|
+
try {
|
|
739
|
+
let errorCalled = 0;
|
|
740
|
+
faces.ajax.addOnError((error) => {
|
|
741
|
+
expect(error.errorName).to.eq("jakarta.faces.application.ViewExpiredException");
|
|
742
|
+
expect(error.errorMessage).to.eq("serverError: View \"/testhmtl.xhtml\" could not be restored.");
|
|
743
|
+
expect(error.source.id).to.eq("form1x:button");
|
|
744
|
+
errorCalled++;
|
|
745
|
+
});
|
|
746
|
+
|
|
747
|
+
faces.ajax.request(window.document.getElementById("form1x:button"), null, {
|
|
748
|
+
"javax.faces.behavior.event": "click",
|
|
749
|
+
execute: "@form",
|
|
750
|
+
render: ":form1x:button"
|
|
751
|
+
});
|
|
752
|
+
|
|
753
|
+
this.respond(`<?xml version="1.0" encoding="UTF-8"?>
|
|
746
754
|
<partial-response><error>
|
|
747
755
|
<error-name>jakarta.faces.application.ViewExpiredException</error-name>
|
|
748
756
|
<error-message><![CDATA[View "/testhmtl.xhtml" could not be restored.]]></error-message>
|
|
749
757
|
</error>
|
|
750
758
|
</partial-response>`)
|
|
751
759
|
|
|
752
|
-
|
|
753
|
-
|
|
760
|
+
expect(errorCalled).to.eq(1);
|
|
761
|
+
} finally {
|
|
762
|
+
console.error = oldErr;
|
|
763
|
+
}
|
|
754
764
|
done();
|
|
755
765
|
|
|
756
766
|
});
|
|
757
767
|
|
|
758
768
|
|
|
759
|
-
|
|
760
|
-
|
|
761
769
|
});
|
|
@@ -17,7 +17,7 @@ import {describe, it} from "mocha";
|
|
|
17
17
|
import * as sinon from "sinon";
|
|
18
18
|
import {expect} from "chai";
|
|
19
19
|
import {StandardInits} from "../frameworkBase/_ext/shared/StandardInits";
|
|
20
|
-
import {DomQuery} from "mona-dish";
|
|
20
|
+
import {_Es2019Array, DomQuery} from "mona-dish";
|
|
21
21
|
import {Implementation} from "../../impl/AjaxImpl";
|
|
22
22
|
import defaultFileForm = StandardInits.tobagoFileForm;
|
|
23
23
|
|
|
@@ -27,6 +27,7 @@ declare var faces: any;
|
|
|
27
27
|
* specialized tests testing the xhr core behavior when it hits the xmlHttpRequest object
|
|
28
28
|
*/
|
|
29
29
|
describe('Tests on the xhr core when it starts to call the request', function () {
|
|
30
|
+
let oldFlatMap = null;
|
|
30
31
|
beforeEach(async function () {
|
|
31
32
|
|
|
32
33
|
let waitForResult = defaultFileForm();
|
|
@@ -47,11 +48,18 @@ describe('Tests on the xhr core when it starts to call the request', function ()
|
|
|
47
48
|
};
|
|
48
49
|
(<any>global).XMLHttpRequest = this.xhr;
|
|
49
50
|
window.XMLHttpRequest = this.xhr;
|
|
51
|
+
oldFlatMap =Array.prototype["flatMap"];
|
|
52
|
+
window["Es2019Array"] = _Es2019Array;
|
|
53
|
+
delete Array.prototype["flatMap"];
|
|
50
54
|
|
|
51
55
|
this.closeIt = () => {
|
|
52
56
|
(<any>global).XMLHttpRequest = window.XMLHttpRequest = this.xhr.restore();
|
|
53
57
|
Implementation.reset();
|
|
54
58
|
close();
|
|
59
|
+
if(oldFlatMap) {
|
|
60
|
+
Array.prototype["flatMap"] = oldFlatMap;
|
|
61
|
+
oldFlatMap = null;
|
|
62
|
+
}
|
|
55
63
|
}
|
|
56
64
|
});
|
|
57
65
|
|
|
@@ -21,16 +21,16 @@ import {Implementation} from "../../impl/AjaxImpl";
|
|
|
21
21
|
import {expect} from "chai";
|
|
22
22
|
|
|
23
23
|
import defaultMyFaces = StandardInits.defaultMyFaces;
|
|
24
|
-
import {Lang} from "mona-dish";
|
|
24
|
+
import {_Es2019Array, Lang} from "mona-dish";
|
|
25
25
|
import {FakeWebsocket} from "./FakeWebsocket";
|
|
26
26
|
import assertType = Lang.assertType;
|
|
27
27
|
|
|
28
28
|
declare var faces: any;
|
|
29
29
|
|
|
30
30
|
describe('Tests the jsf websocket client side api on high level (generic test without any myfaces dependencies', function () {
|
|
31
|
-
|
|
31
|
+
let oldFlatMap = null;
|
|
32
32
|
beforeEach(async function () {
|
|
33
|
-
|
|
33
|
+
let oldFlatMap = null;
|
|
34
34
|
let waitForResult = defaultMyFaces();
|
|
35
35
|
|
|
36
36
|
return waitForResult.then((close) => {
|
|
@@ -51,6 +51,9 @@ describe('Tests the jsf websocket client side api on high level (generic test wi
|
|
|
51
51
|
|
|
52
52
|
this.pushImpl = (<any>global).PushImpl;
|
|
53
53
|
this.initSpy = sinon.spy(this.pushImpl, "init");
|
|
54
|
+
oldFlatMap =Array.prototype["flatMap"];
|
|
55
|
+
window["Es2019Array"] = _Es2019Array;
|
|
56
|
+
delete Array.prototype["flatMap"];
|
|
54
57
|
|
|
55
58
|
this.closeIt = () => {
|
|
56
59
|
(<any>global).XMLHttpRequest = window.XMLHttpRequest = this.xhr.restore();
|
|
@@ -67,6 +70,10 @@ describe('Tests the jsf websocket client side api on high level (generic test wi
|
|
|
67
70
|
|
|
68
71
|
afterEach(function () {
|
|
69
72
|
this.closeIt();
|
|
73
|
+
if(oldFlatMap) {
|
|
74
|
+
Array.prototype["flatMap"] = oldFlatMap;
|
|
75
|
+
oldFlatMap = null;
|
|
76
|
+
}
|
|
70
77
|
});
|
|
71
78
|
|
|
72
79
|
it("must register a channel", function (done: Function) {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import {describe, it} from 'mocha';
|
|
18
|
-
import {DQ} from "mona-dish";
|
|
18
|
+
import {_Es2019Array, DQ} from "mona-dish";
|
|
19
19
|
import * as sinon from 'sinon';
|
|
20
20
|
import {XhrFormData} from "../../impl/xhrCore/XhrFormData";
|
|
21
21
|
import {expect} from "chai";
|
|
@@ -27,7 +27,7 @@ const jsdom = require("jsdom");
|
|
|
27
27
|
const {JSDOM} = jsdom;
|
|
28
28
|
|
|
29
29
|
describe('XhrFormData tests', function () {
|
|
30
|
-
|
|
30
|
+
let oldFlatMap = null;
|
|
31
31
|
beforeEach(async function () {
|
|
32
32
|
|
|
33
33
|
let waitForResult = defaultMyFaces();
|
|
@@ -43,12 +43,19 @@ describe('XhrFormData tests', function () {
|
|
|
43
43
|
window.XMLHttpRequest = this.xhr;
|
|
44
44
|
|
|
45
45
|
this.jsfAjaxResponse = sinon.spy((<any>global).faces.ajax, "response");
|
|
46
|
+
oldFlatMap =Array.prototype["flatMap"];
|
|
47
|
+
window["Es2019Array"] = _Es2019Array;
|
|
48
|
+
delete Array.prototype["flatMap"];
|
|
46
49
|
|
|
47
50
|
this.closeIt = () => {
|
|
48
51
|
(<any>global).XMLHttpRequest = window.XMLHttpRequest = this.xhr.restore();
|
|
49
52
|
this.jsfAjaxResponse.restore();
|
|
50
53
|
Implementation.reset();
|
|
51
54
|
close();
|
|
55
|
+
if(oldFlatMap) {
|
|
56
|
+
Array.prototype["flatMap"] = oldFlatMap;
|
|
57
|
+
oldFlatMap = null;
|
|
58
|
+
}
|
|
52
59
|
}
|
|
53
60
|
});
|
|
54
61
|
});
|
package/target/api/_api.js
CHANGED
|
@@ -261,7 +261,7 @@ var myfaces;
|
|
|
261
261
|
*
|
|
262
262
|
* @param executionFunc the function to be executed upon ready
|
|
263
263
|
*/
|
|
264
|
-
function
|
|
264
|
+
function onDomReady(executionFunc) {
|
|
265
265
|
if (document.readyState !== "complete") {
|
|
266
266
|
onReadyChain.push(executionFunc);
|
|
267
267
|
if (!readyStateListener) {
|
|
@@ -286,7 +286,7 @@ var myfaces;
|
|
|
286
286
|
executionFunc();
|
|
287
287
|
}
|
|
288
288
|
}
|
|
289
|
-
myfaces.
|
|
289
|
+
myfaces.onDomReady = onDomReady;
|
|
290
290
|
/**
|
|
291
291
|
* legacy oam functions
|
|
292
292
|
*/
|
package/target/api/_api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_api.js","sourceRoot":"","sources":["../../src/main/typescript/api/_api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"_api.js","sourceRoot":"","sources":["../../src/main/typescript/api/_api.ts"],"names":[],"mappings":"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"}
|