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.
Files changed (121) hide show
  1. package/README.md +6 -0
  2. package/dist/docs/assets/search.js +1 -1
  3. package/dist/docs/functions/myfaces.ab.html +1 -1
  4. package/dist/docs/functions/{myfaces.onOnDomReady.html → myfaces.onDomReady.html} +5 -5
  5. package/dist/docs/index.html +9 -0
  6. package/dist/docs/modules/myfaces.html +2 -2
  7. package/dist/docs/variables/myfaces.oam.html +1 -1
  8. package/dist/window/faces-development.js +1292 -1296
  9. package/dist/window/faces-development.js.br +0 -0
  10. package/dist/window/faces-development.js.gz +0 -0
  11. package/dist/window/faces-development.js.map +1 -1
  12. package/dist/window/faces.js +1 -1
  13. package/dist/window/faces.js.br +0 -0
  14. package/dist/window/faces.js.gz +0 -0
  15. package/dist/window/faces.js.map +1 -1
  16. package/dist/window/jsf-development.js +1292 -1296
  17. package/dist/window/jsf-development.js.br +0 -0
  18. package/dist/window/jsf-development.js.gz +0 -0
  19. package/dist/window/jsf-development.js.map +1 -1
  20. package/dist/window/jsf.js +1 -1
  21. package/dist/window/jsf.js.br +0 -0
  22. package/dist/window/jsf.js.gz +0 -0
  23. package/dist/window/jsf.js.map +1 -1
  24. package/package.json +5 -5
  25. package/plans for 4.0.1.txt +8 -0
  26. package/src/main/typescript/api/_api.ts +1 -1
  27. package/src/main/typescript/impl/AjaxImpl.ts +63 -47
  28. package/src/main/typescript/impl/core/Const.ts +5 -2
  29. package/src/main/typescript/impl/util/AsyncRunnable.ts +81 -6
  30. package/src/main/typescript/impl/util/ExtDomQuery.ts +7 -9
  31. package/src/main/typescript/impl/util/FileUtils.ts +26 -22
  32. package/src/main/typescript/impl/util/HiddenInputBuilder.ts +7 -3
  33. package/src/main/typescript/impl/util/Lang.ts +62 -4
  34. package/src/main/typescript/impl/util/XhrQueueController.ts +112 -0
  35. package/src/main/typescript/impl/xhrCore/EventData.ts +3 -3
  36. package/src/main/typescript/impl/xhrCore/ResponseProcessor.ts +12 -10
  37. package/src/main/typescript/impl/xhrCore/XhrFormData.ts +33 -19
  38. package/src/main/typescript/impl/xhrCore/XhrRequest.ts +51 -72
  39. package/src/main/typescript/myfaces/OamSubmit.ts +6 -6
  40. package/src/main/typescript/test/frameworkBase/_ext/monadish/DomQueryTest.spec.ts +179 -40
  41. package/src/main/typescript/test/frameworkBase/_ext/monadish/MonadTest.spec.ts +4 -4
  42. package/src/main/typescript/test/frameworkBase/_ext/monadish/fixtures/blank.css +0 -0
  43. package/src/main/typescript/test/frameworkBase/_ext/monadish/markups/tobago-with-header.ts +921 -0
  44. package/src/main/typescript/test/frameworkBase/_ext/monadish/markups/tobago-without-header.ts +108 -0
  45. package/src/main/typescript/test/frameworkBase/_ext/shared/StandardInits.ts +3 -2
  46. package/src/main/typescript/test/frameworkBase/_ext/shared/fixtures/jakarta.faces.resource/faces.js.jsf +0 -0
  47. package/src/main/typescript/test/impl/ImplTest.spec.ts +24 -6
  48. package/src/main/typescript/test/myfaces/OnLoadSpec.ts +52 -0
  49. package/src/main/typescript/test/queue/AsynchronousProbe.ts +5 -5
  50. package/src/main/typescript/test/queue/AsynchronousQueueTest.spec.ts +4 -3
  51. package/src/main/typescript/test/xhrCore/EventTests.spec.ts +28 -22
  52. package/src/main/typescript/test/xhrCore/FileUploadTest.spec.ts +9 -1
  53. package/src/main/typescript/test/xhrCore/NamespacesRequestTest.spec.ts +13 -5
  54. package/src/main/typescript/test/xhrCore/OamSubmitTest.spec.ts +9 -2
  55. package/src/main/typescript/test/xhrCore/RequestParamsTest.spec.ts +2 -2
  56. package/src/main/typescript/test/xhrCore/RequestTest.spec.ts +89 -8
  57. package/src/main/typescript/test/xhrCore/RequestTest_23.spec.ts +6 -1
  58. package/src/main/typescript/test/xhrCore/ResponseTest.spec.ts +32 -24
  59. package/src/main/typescript/test/xhrCore/TobagoFileUploadTest.spec.ts +9 -1
  60. package/src/main/typescript/test/xhrCore/WebsocketTest.ts +10 -3
  61. package/src/main/typescript/test/xhrCore/XhrFormDataTest.spec.ts +9 -2
  62. package/target/api/_api.js +2 -2
  63. package/target/api/_api.js.map +1 -1
  64. package/target/impl/AjaxImpl.js +51 -41
  65. package/target/impl/AjaxImpl.js.map +1 -1
  66. package/target/impl/core/Const.js +7 -5
  67. package/target/impl/core/Const.js.map +1 -1
  68. package/target/impl/util/AsyncRunnable.js +60 -0
  69. package/target/impl/util/AsyncRunnable.js.map +1 -1
  70. package/target/impl/util/ExtDomQuery.js +8 -8
  71. package/target/impl/util/ExtDomQuery.js.map +1 -1
  72. package/target/impl/util/FileUtils.js +21 -19
  73. package/target/impl/util/FileUtils.js.map +1 -1
  74. package/target/impl/util/HiddenInputBuilder.js +7 -3
  75. package/target/impl/util/HiddenInputBuilder.js.map +1 -1
  76. package/target/impl/util/Lang.js +53 -1
  77. package/target/impl/util/Lang.js.map +1 -1
  78. package/target/impl/xhrCore/EventData.js +2 -2
  79. package/target/impl/xhrCore/EventData.js.map +1 -1
  80. package/target/impl/xhrCore/ResponseProcessor.js +9 -7
  81. package/target/impl/xhrCore/ResponseProcessor.js.map +1 -1
  82. package/target/impl/xhrCore/XhrFormData.js +30 -15
  83. package/target/impl/xhrCore/XhrFormData.js.map +1 -1
  84. package/target/impl/xhrCore/XhrRequest.js +43 -64
  85. package/target/impl/xhrCore/XhrRequest.js.map +1 -1
  86. package/target/myfaces/OamSubmit.js +5 -3
  87. package/target/myfaces/OamSubmit.js.map +1 -1
  88. package/target/test/frameworkBase/_ext/monadish/DomQueryTest.spec.js +138 -37
  89. package/target/test/frameworkBase/_ext/monadish/DomQueryTest.spec.js.map +1 -1
  90. package/target/test/frameworkBase/_ext/monadish/MonadTest.spec.js +4 -4
  91. package/target/test/frameworkBase/_ext/monadish/MonadTest.spec.js.map +1 -1
  92. package/target/test/frameworkBase/_ext/shared/StandardInits.js +3 -2
  93. package/target/test/frameworkBase/_ext/shared/StandardInits.js.map +1 -1
  94. package/target/test/impl/ImplTest.spec.js +19 -1
  95. package/target/test/impl/ImplTest.spec.js.map +1 -1
  96. package/target/test/queue/AsynchronousQueueTest.spec.js +3 -3
  97. package/target/test/queue/AsynchronousQueueTest.spec.js.map +1 -1
  98. package/target/test/xhrCore/EventTests.spec.js +26 -19
  99. package/target/test/xhrCore/EventTests.spec.js.map +1 -1
  100. package/target/test/xhrCore/FileUploadTest.spec.js +8 -0
  101. package/target/test/xhrCore/FileUploadTest.spec.js.map +1 -1
  102. package/target/test/xhrCore/NamespacesRequestTest.spec.js +11 -3
  103. package/target/test/xhrCore/NamespacesRequestTest.spec.js.map +1 -1
  104. package/target/test/xhrCore/OamSubmitTest.spec.js +8 -0
  105. package/target/test/xhrCore/OamSubmitTest.spec.js.map +1 -1
  106. package/target/test/xhrCore/RequestParamsTest.spec.js +1 -1
  107. package/target/test/xhrCore/RequestParamsTest.spec.js.map +1 -1
  108. package/target/test/xhrCore/RequestTest.spec.js +81 -4
  109. package/target/test/xhrCore/RequestTest.spec.js.map +1 -1
  110. package/target/test/xhrCore/RequestTest_23.spec.js +6 -0
  111. package/target/test/xhrCore/RequestTest_23.spec.js.map +1 -1
  112. package/target/test/xhrCore/ResponseTest.spec.js +30 -15
  113. package/target/test/xhrCore/ResponseTest.spec.js.map +1 -1
  114. package/target/test/xhrCore/TobagoFileUploadTest.spec.js +8 -0
  115. package/target/test/xhrCore/TobagoFileUploadTest.spec.js.map +1 -1
  116. package/target/test/xhrCore/WebsocketTest.js +9 -0
  117. package/target/test/xhrCore/WebsocketTest.js.map +1 -1
  118. package/target/test/xhrCore/XhrFormDataTest.spec.js +8 -0
  119. package/target/test/xhrCore/XhrFormDataTest.spec.js.map +1 -1
  120. package/src/main/typescript/impl/util/AsyncQueue.ts +0 -133
  121. 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
- P_PARTIAL_SOURCE,
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[P_PARTIAL_SOURCE]).to.eq("input_2");
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[P_PARTIAL_SOURCE]).to.be.true;
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[P_PARTIAL_SOURCE]).to.be.true;
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[P_PARTIAL_SOURCE]).to.be.true;
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
- let errorCalled = 0;
732
- faces.ajax.addOnError((error)=> {
733
- expect(error.errorName).to.eq("jakarta.faces.application.ViewExpiredException");
734
- expect(error.errorMessage).to.eq("serverError: View \"/testhmtl.xhtml\" could not be restored.");
735
- expect(error.source.id).to.eq("form1x:button");
736
- errorCalled++;
737
- });
738
-
739
- faces.ajax.request(window.document.getElementById("form1x:button"), null, {
740
- "javax.faces.behavior.event": "click",
741
- execute: "@form",
742
- render: ":form1x:button"
743
- });
744
-
745
- this.respond(`<?xml version="1.0" encoding="UTF-8"?>
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
- expect(errorCalled).to.eq(1);
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
  });
@@ -261,7 +261,7 @@ var myfaces;
261
261
  *
262
262
  * @param executionFunc the function to be executed upon ready
263
263
  */
264
- function onOnDomReady(executionFunc) {
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.onOnDomReady = onOnDomReady;
289
+ myfaces.onDomReady = onDomReady;
290
290
  /**
291
291
  * legacy oam functions
292
292
  */
@@ -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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"}