@qooxdoo/framework 7.1.0 → 7.2.1
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/CHANGELOG.md +3 -0
- package/Manifest.json +22 -22
- package/lib/compiler/compile-info.json +66 -66
- package/lib/compiler/index.js +406 -335
- package/lib/resource/qx/tool/cli/templates/loader/loader-browser.tmpl.js +1 -2
- package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -1
- package/lib/resource/qx/tool/schema/compile-1-0-0.json +11 -1
- package/npm-shrinkwrap.json +793 -744
- package/package.json +9 -8
- package/source/class/qx/Interface.js +13 -15
- package/source/class/qx/dev/unit/MTestLoader.js +25 -33
- package/source/class/qx/dev/unit/TestResult.js +9 -13
- package/source/class/qx/event/handler/Focus.js +1 -1
- package/source/class/qx/html/Element.js +1 -1
- package/source/class/qx/html/Node.js +0 -1
- package/source/class/qx/io/request/AbstractRequest.js +42 -66
- package/source/class/qx/test/Interface.js +70 -6
- package/source/class/qx/test/Mixin.js +20 -17
- package/source/class/qx/test/Promise.js +67 -91
- package/source/class/qx/test/bom/History.js +11 -19
- package/source/class/qx/test/bom/WebWorker.js +7 -15
- package/source/class/qx/test/bom/media/MediaTestCase.js +10 -18
- package/source/class/qx/test/bom/media/Video.js +10 -18
- package/source/class/qx/test/bom/rest/Resource.js +3 -7
- package/source/class/qx/test/bom/rest/ResourceWithRemote.js +40 -56
- package/source/class/qx/test/bom/webfonts/Validator.js +12 -20
- package/source/class/qx/test/core/Object.js +3 -7
- package/source/class/qx/test/data/controller/List.js +18 -22
- package/source/class/qx/test/data/marshal/Json.js +10 -14
- package/source/class/qx/test/data/store/Json.js +337 -428
- package/source/class/qx/test/data/store/Jsonp.js +46 -66
- package/source/class/qx/test/data/store/RestWithRemote.js +10 -18
- package/source/class/qx/test/html/Element.js +4 -8
- package/source/class/qx/test/html/Iframe.js +48 -60
- package/source/class/qx/test/io/jsonrpc/Client.js +1 -1
- package/source/class/qx/test/io/request/JsonpWithRemote.js +6 -10
- package/source/class/qx/test/io/request/MRequest.js +13 -25
- package/source/class/qx/test/io/request/Xhr.js +5 -9
- package/source/class/qx/test/io/request/XhrWithRemote.js +50 -78
- package/source/class/qx/test/io/rest/Resource.js +3 -7
- package/source/class/qx/test/io/rest/ResourceWithRemote.js +41 -57
- package/source/class/qx/test/mobile/basic/Image.js +16 -24
- package/source/class/qx/test/mobile/container/Navigation.js +3 -7
- package/source/class/qx/test/mobile/container/Scroll.js +8 -12
- package/source/class/qx/test/mobile/page/Page.js +24 -44
- package/source/class/qx/test/performance/Property.js +2 -2
- package/source/class/qx/test/ui/basic/Image.js +32 -52
- package/source/class/qx/test/ui/core/Blocker.js +6 -14
- package/source/class/qx/test/ui/embed/Iframe.js +13 -21
- package/source/class/qx/test/ui/form/FileSelectorButton.js +32 -0
- package/source/class/qx/test/ui/form/FormValidator.js +147 -211
- package/source/class/qx/test/ui/form/Label.js +8 -16
- package/source/class/qx/test/ui/root/Inline.js +9 -13
- package/source/class/qx/test/ui/table/Table.js +6 -14
- package/source/class/qx/test/ui/toolbar/OverflowHandling.js +18 -30
- package/source/class/qx/test/ui/virtual/Pane.js +3 -7
- package/source/class/qx/test/util/DynamicScriptLoader.js +23 -42
- package/source/class/qx/theme/iconfont/LoadMaterialIcons.js +4 -4
- package/source/class/qx/theme/iconfont/LoadMaterialIconsOutlined.js +4 -4
- package/source/class/qx/theme/iconfont/LoadMaterialIconsRound.js +4 -4
- package/source/class/qx/theme/iconfont/LoadMaterialIconsSharp.js +4 -4
- package/source/class/qx/theme/iconfont/LoadMaterialIconsTwoTone.js +4 -4
- package/source/class/qx/theme/tangible/Appearance.js +22 -3
- package/source/class/qx/theme/tangible/ColorEngine.js +3 -3
- package/source/class/qx/theme/tangible/Decoration.js +3 -3
- package/source/class/qx/tool/cli/Watch.js +3 -7
- package/source/class/qx/tool/cli/api/AbstractApi.js +1 -1
- package/source/class/qx/tool/cli/api/CompilerApi.js +3 -7
- package/source/class/qx/tool/cli/commands/Compile.js +9 -1
- package/source/class/qx/tool/cli/commands/Lint.js +21 -17
- package/source/class/qx/tool/compiler/ClassFile.js +22 -12
- package/source/class/qx/tool/compiler/Es6ify.js +12 -5
- package/source/class/qx/tool/compiler/TargetError.js +3 -4
- package/source/class/qx/tool/compiler/app/Application.js +14 -0
- package/source/class/qx/tool/compiler/app/WebFont.js +8 -6
- package/source/class/qx/tool/compiler/targets/SourceCodeCopier.js +1 -1
- package/source/class/qx/tool/compiler/targets/Target.js +7 -5
- package/source/class/qx/tool/compiler/targets/meta/AbstractJavascriptMeta.js +1 -1
- package/source/class/qx/tool/compiler/targets/meta/Browserify.js +88 -52
- package/source/class/qx/tool/compiler/targets/meta/Uglify.js +11 -3
- package/source/class/qx/tool/utils/Json.js +1 -1
- package/source/class/qx/tool/utils/Website.js +2 -2
- package/source/class/qx/ui/basic/Label.js +13 -17
- package/source/class/qx/ui/core/MPlacement.js +13 -21
- package/source/class/qx/ui/core/Widget.js +2 -3
- package/source/class/qx/ui/core/scroll/NativeScrollBar.js +3 -7
- package/source/class/qx/ui/core/scroll/ScrollBar.js +3 -7
- package/source/class/qx/ui/embed/Iframe.js +40 -50
- package/source/class/qx/ui/form/AbstractField.js +8 -12
- package/source/class/qx/ui/form/ComboBox.js +7 -15
- package/source/class/qx/ui/form/DateField.js +9 -18
- package/source/class/qx/ui/form/FileSelectorButton.js +157 -0
- package/source/class/qx/ui/form/Spinner.js +7 -15
- package/source/class/qx/ui/form/TextArea.js +3 -7
- package/source/class/qx/ui/form/VirtualComboBox.js +8 -16
- package/source/class/qx/ui/form/VirtualSelectBox.js +21 -37
- package/source/class/qx/ui/layout/Canvas.js +2 -2
- package/source/class/qx/ui/mobile/container/MIScroll.js +3 -7
- package/source/class/qx/ui/progressive/headfoot/Progress.js +22 -34
- package/source/class/qx/ui/progressive/renderer/table/Row.js +1 -1
- package/source/class/qx/ui/splitpane/Pane.js +14 -22
- package/source/class/qx/ui/table/MTableContextMenu.js +63 -71
- package/source/class/qx/ui/table/Table.js +3 -7
- package/source/class/qx/ui/table/model/Abstract.js +5 -2
- package/source/class/qx/ui/table/pane/Scroller.js +8 -12
- package/source/class/qx/ui/toolbar/FileSelectorButton.js +57 -0
- package/source/class/qx/ui/toolbar/Part.js +3 -7
- package/source/class/qx/ui/tree/VirtualTree.js +5 -9
- package/source/class/qx/ui/treevirtual/MNode.js +5 -3
- package/source/class/qx/ui/treevirtual/TreeVirtual.js +3 -7
- package/source/class/qx/ui/virtual/core/Pane.js +30 -42
- package/source/class/qx/util/DynamicScriptLoader.js +31 -43
- package/source/resource/qx/iconfont/MaterialIcons/materialicons-v126.eot +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/{materialicons-v70.ttf → materialicons-v126.ttf} +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialicons-v126.woff +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialicons-v126.woff2 +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsoutlined-v101.eot +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsoutlined-v101.otf +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsoutlined-v101.woff +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsoutlined-v101.woff2 +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsround-v100.eot +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsround-v100.otf +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsround-v100.woff +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsround-v100.woff2 +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconssharp-v101.eot +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconssharp-v101.otf +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconssharp-v101.woff +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconssharp-v101.woff2 +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconstwotone-v104.eot +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconstwotone-v104.otf +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconstwotone-v104.woff +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconstwotone-v104.woff2 +0 -0
- package/source/resource/qx/tool/cli/templates/loader/loader-browser.tmpl.js +1 -2
- package/source/resource/qx/tool/schema/compile-1-0-0.json +11 -1
- package/source/resource/qx/iconfont/MaterialIcons/materialicons-v70.eot +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialicons-v70.woff +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialicons-v70.woff2 +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsoutlined-v38.eot +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsoutlined-v38.otf +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsoutlined-v38.woff +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsoutlined-v38.woff2 +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsround-v37.eot +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsround-v37.otf +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsround-v37.woff +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconsround-v37.woff2 +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconssharp-v38.eot +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconssharp-v38.otf +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconssharp-v38.woff +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconssharp-v38.woff2 +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconstwotone-v36.eot +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconstwotone-v36.otf +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconstwotone-v36.woff +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/materialiconstwotone-v36.woff2 +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qooxdoo/framework",
|
|
3
|
-
"version": "7.1
|
|
3
|
+
"version": "7.2.1",
|
|
4
4
|
"description": "The JS Framework for Coders",
|
|
5
5
|
"author": "The qooxdoo project",
|
|
6
6
|
"keywords": [
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"bin/deploy"
|
|
52
52
|
],
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@babel/core": "^7.
|
|
54
|
+
"@babel/core": "^7.17.10",
|
|
55
55
|
"@babel/eslint-parser": "^7.16.3",
|
|
56
56
|
"@babel/generator": "^7.12.11",
|
|
57
57
|
"@babel/parser": "^7.12.11",
|
|
@@ -60,12 +60,14 @@
|
|
|
60
60
|
"@babel/plugin-syntax-jsx": "^7.16.7",
|
|
61
61
|
"@babel/plugin-transform-block-scoping": "^7.12.12",
|
|
62
62
|
"@babel/plugin-transform-react-jsx": "^7.12.12",
|
|
63
|
-
"@babel/preset-env": "^7.
|
|
63
|
+
"@babel/preset-env": "^7.17.10",
|
|
64
64
|
"@babel/preset-react": "^7.12.10",
|
|
65
65
|
"@babel/preset-typescript": "^7.12.7",
|
|
66
66
|
"@babel/traverse": "^7.12.12",
|
|
67
67
|
"@babel/types": "^7.12.12",
|
|
68
68
|
"@foliojs-fork/fontkit": "^1.9.1",
|
|
69
|
+
"@metalsmith/layouts": "^2.5.1",
|
|
70
|
+
"@metalsmith/markdown": "^1.5.0",
|
|
69
71
|
"@octokit/rest": "^18.0.15",
|
|
70
72
|
"@qooxdoo/eslint-config-jsdoc-disable": "^1.0.3",
|
|
71
73
|
"@qooxdoo/eslint-config-qx": "^2.0.1",
|
|
@@ -73,6 +75,7 @@
|
|
|
73
75
|
"ajv": "^8.8.1",
|
|
74
76
|
"app-module-path": "^2.2.0",
|
|
75
77
|
"async": "^2.6.3",
|
|
78
|
+
"babelify": "^10.0.0",
|
|
76
79
|
"better-ajv-errors": "^1.1.1",
|
|
77
80
|
"browserify": "^17.0.0",
|
|
78
81
|
"chokidar": "^3.5.1",
|
|
@@ -95,9 +98,7 @@
|
|
|
95
98
|
"inquirer": "^7.3.3",
|
|
96
99
|
"json-stable-stringify": "^1.0.1",
|
|
97
100
|
"jstransformer-dot": "^0.1.2",
|
|
98
|
-
"metalsmith": "^2.3
|
|
99
|
-
"metalsmith-layouts": "^2.3.1",
|
|
100
|
-
"metalsmith-markdown": "^1.3.0",
|
|
101
|
+
"metalsmith": "^2.4.3",
|
|
101
102
|
"node-fetch": "^2.6.7",
|
|
102
103
|
"object-hash": "^2.1.1",
|
|
103
104
|
"prettier": "^2.5.1",
|
|
@@ -108,9 +109,9 @@
|
|
|
108
109
|
"semver": "^7.3.4",
|
|
109
110
|
"set-value": "^4.1.0",
|
|
110
111
|
"showdown": "^1.9.1",
|
|
111
|
-
"source-map": "^0.
|
|
112
|
+
"source-map-js": "^1.0.2",
|
|
112
113
|
"tap-colorize": "^1.2.0",
|
|
113
|
-
"terser": "^5.
|
|
114
|
+
"terser": "^5.14.1",
|
|
114
115
|
"tmp": "0.2.1",
|
|
115
116
|
"unset-value": "^1.0.0",
|
|
116
117
|
"upath": "^1.2.0",
|
|
@@ -255,21 +255,19 @@ qx.Bootstrap.define("qx.Interface", {
|
|
|
255
255
|
} else {
|
|
256
256
|
// Other members are not checked more detailed because of
|
|
257
257
|
// JavaScript's loose type handling
|
|
258
|
-
if (typeof object[key] === undefined) {
|
|
259
|
-
if (
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
return false;
|
|
272
|
-
}
|
|
258
|
+
if (typeof object[key] === "undefined") {
|
|
259
|
+
if (shouldThrow) {
|
|
260
|
+
throw new Error(
|
|
261
|
+
'Implementation of member "' +
|
|
262
|
+
key +
|
|
263
|
+
'" is missing in class "' +
|
|
264
|
+
clazz.classname +
|
|
265
|
+
'" required by interface "' +
|
|
266
|
+
iface.name +
|
|
267
|
+
'"'
|
|
268
|
+
);
|
|
269
|
+
} else {
|
|
270
|
+
return false;
|
|
273
271
|
}
|
|
274
272
|
}
|
|
275
273
|
}
|
|
@@ -91,39 +91,31 @@ qx.Mixin.define("qx.dev.unit.MTestLoader", {
|
|
|
91
91
|
runStandAlone() {
|
|
92
92
|
var testResult = new qx.dev.unit.TestResult();
|
|
93
93
|
|
|
94
|
-
testResult.addListener(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
"
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
var test = e.getData()[0].test;
|
|
120
|
-
this.error(
|
|
121
|
-
"The test '" + test.getFullName() + "' had an error: " + ex,
|
|
122
|
-
ex
|
|
123
|
-
);
|
|
124
|
-
},
|
|
125
|
-
this
|
|
126
|
-
);
|
|
94
|
+
testResult.addListener("failure", e => {
|
|
95
|
+
var ex = e.getData()[0].exception;
|
|
96
|
+
var test = e.getData()[0].test;
|
|
97
|
+
this.error(
|
|
98
|
+
"Test '" +
|
|
99
|
+
test.getFullName() +
|
|
100
|
+
"' failed: " +
|
|
101
|
+
ex.message +
|
|
102
|
+
" - " +
|
|
103
|
+
ex.getComment()
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
if (ex.getStackTrace) {
|
|
107
|
+
this.error("Stack trace: " + ex.getStackTrace().join("\n"));
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
testResult.addListener("error", e => {
|
|
112
|
+
var ex = e.getData()[0].exception;
|
|
113
|
+
var test = e.getData()[0].test;
|
|
114
|
+
this.error(
|
|
115
|
+
"The test '" + test.getFullName() + "' had an error: " + ex,
|
|
116
|
+
ex
|
|
117
|
+
);
|
|
118
|
+
});
|
|
127
119
|
|
|
128
120
|
this.getSuite().run(testResult);
|
|
129
121
|
},
|
|
@@ -125,20 +125,16 @@ qx.Class.define("qx.dev.unit.TestResult", {
|
|
|
125
125
|
|
|
126
126
|
var testClass = test.getTestClass();
|
|
127
127
|
if (!testClass.hasListener("assertionFailed")) {
|
|
128
|
-
testClass.addListener(
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
];
|
|
128
|
+
testClass.addListener("assertionFailed", ev => {
|
|
129
|
+
var error = [
|
|
130
|
+
{
|
|
131
|
+
exception: ev.getData(),
|
|
132
|
+
test: test
|
|
133
|
+
}
|
|
134
|
+
];
|
|
137
135
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
this
|
|
141
|
-
);
|
|
136
|
+
this.fireDataEvent("failure", error);
|
|
137
|
+
});
|
|
142
138
|
}
|
|
143
139
|
|
|
144
140
|
if (resume && !this._timeout[test.getFullName()]) {
|
|
@@ -1044,7 +1044,7 @@ qx.Class.define("qx.html.Element", {
|
|
|
1044
1044
|
* @Override
|
|
1045
1045
|
*/
|
|
1046
1046
|
_applyVisible(value, oldValue) {
|
|
1047
|
-
|
|
1047
|
+
super._applyVisible(value, oldValue);
|
|
1048
1048
|
if (value) {
|
|
1049
1049
|
if (this._domNode) {
|
|
1050
1050
|
qx.html.Element._visibility[this.toHashCode()] = this;
|
|
@@ -451,87 +451,63 @@ qx.Class.define("qx.io.request.AbstractRequest", {
|
|
|
451
451
|
var promise = new qx.Promise(function (resolve, reject) {
|
|
452
452
|
var listeners = [];
|
|
453
453
|
|
|
454
|
-
var changeResponseListener = req.addListener(
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
resolve(req);
|
|
459
|
-
},
|
|
460
|
-
this
|
|
461
|
-
);
|
|
454
|
+
var changeResponseListener = req.addListener("success", e => {
|
|
455
|
+
listeners.forEach(req.removeListenerById.bind(req));
|
|
456
|
+
resolve(req);
|
|
457
|
+
});
|
|
462
458
|
|
|
463
459
|
listeners.push(changeResponseListener);
|
|
464
460
|
|
|
465
|
-
var statusErrorListener = req.addListener(
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
reject(err);
|
|
476
|
-
},
|
|
477
|
-
this
|
|
478
|
-
);
|
|
461
|
+
var statusErrorListener = req.addListener("statusError", e => {
|
|
462
|
+
listeners.forEach(req.removeListenerById.bind(req));
|
|
463
|
+
var failMessage = qx.lang.String.format("%1: %2.", [
|
|
464
|
+
req.getStatus(),
|
|
465
|
+
req.getStatusText()
|
|
466
|
+
]);
|
|
467
|
+
|
|
468
|
+
var err = new qx.type.BaseError("statusError", failMessage);
|
|
469
|
+
reject(err);
|
|
470
|
+
});
|
|
479
471
|
|
|
480
472
|
listeners.push(statusErrorListener);
|
|
481
473
|
|
|
482
|
-
var timeoutListener = req.addListener(
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
reject(err);
|
|
493
|
-
},
|
|
494
|
-
this
|
|
495
|
-
);
|
|
474
|
+
var timeoutListener = req.addListener("timeout", e => {
|
|
475
|
+
listeners.forEach(req.removeListenerById.bind(req));
|
|
476
|
+
var failMessage = qx.lang.String.format(
|
|
477
|
+
"Request failed with timeout after %1 ms.",
|
|
478
|
+
[req.getTimeout()]
|
|
479
|
+
);
|
|
480
|
+
|
|
481
|
+
var err = new qx.type.BaseError("timeout", failMessage);
|
|
482
|
+
reject(err);
|
|
483
|
+
});
|
|
496
484
|
|
|
497
485
|
listeners.push(timeoutListener);
|
|
498
486
|
|
|
499
|
-
var parseErrorListener = req.addListener(
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
reject(err);
|
|
506
|
-
},
|
|
507
|
-
this
|
|
508
|
-
);
|
|
487
|
+
var parseErrorListener = req.addListener("parseError", e => {
|
|
488
|
+
listeners.forEach(req.removeListenerById.bind(req));
|
|
489
|
+
var failMessage = "Error parsing the response.";
|
|
490
|
+
var err = new qx.type.BaseError("parseError", failMessage);
|
|
491
|
+
reject(err);
|
|
492
|
+
});
|
|
509
493
|
|
|
510
494
|
listeners.push(parseErrorListener);
|
|
511
495
|
|
|
512
|
-
var abortListener = req.addListener(
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
reject(err);
|
|
519
|
-
},
|
|
520
|
-
this
|
|
521
|
-
);
|
|
496
|
+
var abortListener = req.addListener("abort", e => {
|
|
497
|
+
listeners.forEach(req.removeListenerById.bind(req));
|
|
498
|
+
var failMessage = "Request aborted.";
|
|
499
|
+
var err = new qx.type.BaseError("abort", failMessage);
|
|
500
|
+
reject(err);
|
|
501
|
+
});
|
|
522
502
|
|
|
523
503
|
listeners.push(abortListener);
|
|
524
504
|
|
|
525
|
-
var errorListener = req.addListener(
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
reject(err);
|
|
532
|
-
},
|
|
533
|
-
this
|
|
534
|
-
);
|
|
505
|
+
var errorListener = req.addListener("error", e => {
|
|
506
|
+
listeners.forEach(req.removeListenerById.bind(req));
|
|
507
|
+
var failMessage = "Request failed.";
|
|
508
|
+
var err = new qx.type.BaseError("error", failMessage);
|
|
509
|
+
reject(err);
|
|
510
|
+
});
|
|
535
511
|
|
|
536
512
|
listeners.push(errorListener);
|
|
537
513
|
|
|
@@ -28,7 +28,9 @@ qx.Class.define("qx.test.Interface", {
|
|
|
28
28
|
members: {
|
|
29
29
|
startEngine() {
|
|
30
30
|
return true;
|
|
31
|
-
}
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
engineStarted : null
|
|
32
34
|
},
|
|
33
35
|
|
|
34
36
|
properties: { color: {} }
|
|
@@ -49,7 +51,9 @@ qx.Class.define("qx.test.Interface", {
|
|
|
49
51
|
members: {
|
|
50
52
|
startEngine() {
|
|
51
53
|
return "start";
|
|
52
|
-
}
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
engineStarted : true
|
|
53
57
|
},
|
|
54
58
|
|
|
55
59
|
statics: {
|
|
@@ -78,7 +82,9 @@ qx.Class.define("qx.test.Interface", {
|
|
|
78
82
|
members: {
|
|
79
83
|
startEngine() {
|
|
80
84
|
return "start";
|
|
81
|
-
}
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
engineStarted : true
|
|
82
88
|
},
|
|
83
89
|
|
|
84
90
|
statics: {
|
|
@@ -117,6 +123,54 @@ qx.Class.define("qx.test.Interface", {
|
|
|
117
123
|
qx.Class.undefine("qx.test.i.Bmw2");
|
|
118
124
|
},
|
|
119
125
|
|
|
126
|
+
testMissingMemberFunction() {
|
|
127
|
+
qx.Class.define("qx.test.i.Bmw2", {
|
|
128
|
+
extend: Object,
|
|
129
|
+
construct() {},
|
|
130
|
+
members : {
|
|
131
|
+
engineStarted : false
|
|
132
|
+
},
|
|
133
|
+
statics: {
|
|
134
|
+
honk() {
|
|
135
|
+
return "honk";
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
properties: { color: {} }
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
this.assertFalse(
|
|
143
|
+
qx.Interface.classImplements(qx.test.i.Bmw2, qx.test.i.ICar)
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
qx.Class.undefine("qx.test.i.Bmw2");
|
|
147
|
+
},
|
|
148
|
+
|
|
149
|
+
testMissingMemberVariable() {
|
|
150
|
+
qx.Class.define("qx.test.i.Bmw2", {
|
|
151
|
+
extend: Object,
|
|
152
|
+
construct() {},
|
|
153
|
+
members : {
|
|
154
|
+
startEngine() {
|
|
155
|
+
return "start";
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
statics: {
|
|
159
|
+
honk() {
|
|
160
|
+
return "honk";
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
|
|
164
|
+
properties: { color: {} }
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
this.assertFalse(
|
|
168
|
+
qx.Interface.classImplements(qx.test.i.Bmw2, qx.test.i.ICar)
|
|
169
|
+
);
|
|
170
|
+
|
|
171
|
+
qx.Class.undefine("qx.test.i.Bmw2");
|
|
172
|
+
},
|
|
173
|
+
|
|
120
174
|
testMissingStatics() {
|
|
121
175
|
// (ie it does implement all necessary)
|
|
122
176
|
qx.Class.define("qx.test.i.Bmw3", {
|
|
@@ -125,7 +179,9 @@ qx.Class.define("qx.test.Interface", {
|
|
|
125
179
|
members: {
|
|
126
180
|
startEngine() {
|
|
127
181
|
return "start";
|
|
128
|
-
}
|
|
182
|
+
},
|
|
183
|
+
|
|
184
|
+
engineStarted : null
|
|
129
185
|
},
|
|
130
186
|
|
|
131
187
|
properties: { color: {} }
|
|
@@ -145,7 +201,9 @@ qx.Class.define("qx.test.Interface", {
|
|
|
145
201
|
members: {
|
|
146
202
|
startEngine() {
|
|
147
203
|
return "start";
|
|
148
|
-
}
|
|
204
|
+
},
|
|
205
|
+
|
|
206
|
+
engineStarted : false
|
|
149
207
|
},
|
|
150
208
|
|
|
151
209
|
statics: {
|
|
@@ -189,6 +247,10 @@ qx.Class.define("qx.test.Interface", {
|
|
|
189
247
|
construct() {},
|
|
190
248
|
implement: [qx.test.i.ICar],
|
|
191
249
|
|
|
250
|
+
members: {
|
|
251
|
+
engineStarted : false
|
|
252
|
+
},
|
|
253
|
+
|
|
192
254
|
statics: {
|
|
193
255
|
honk() {
|
|
194
256
|
return "honk";
|
|
@@ -213,7 +275,9 @@ qx.Class.define("qx.test.Interface", {
|
|
|
213
275
|
members: {
|
|
214
276
|
startEngine() {
|
|
215
277
|
return "start";
|
|
216
|
-
}
|
|
278
|
+
},
|
|
279
|
+
|
|
280
|
+
engineStarted : false
|
|
217
281
|
},
|
|
218
282
|
|
|
219
283
|
statics: {
|
|
@@ -405,7 +405,6 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
405
405
|
},
|
|
406
406
|
|
|
407
407
|
testPatchDouble() {
|
|
408
|
-
|
|
409
408
|
qx.Class.define("qx.Patch_1", {
|
|
410
409
|
extend: qx.core.Object,
|
|
411
410
|
|
|
@@ -426,14 +425,14 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
426
425
|
}
|
|
427
426
|
});
|
|
428
427
|
|
|
429
|
-
|
|
430
428
|
qx.Mixin.define("qx.MPatch", {
|
|
431
429
|
members: {
|
|
432
430
|
sayJuhu() {
|
|
433
431
|
return super.sayJuhu() + " Mixin";
|
|
434
|
-
}
|
|
432
|
+
}
|
|
435
433
|
}
|
|
436
434
|
});
|
|
435
|
+
|
|
437
436
|
qx.Class.patch(qx.Patch_1, qx.MPatch);
|
|
438
437
|
qx.Class.patch(qx.Patch_2, qx.MPatch);
|
|
439
438
|
|
|
@@ -444,7 +443,6 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
444
443
|
var o = new qx.Patch_2();
|
|
445
444
|
this.assertEquals("Juhu 2 Mixin", o.sayJuhu());
|
|
446
445
|
o.dispose();
|
|
447
|
-
|
|
448
446
|
},
|
|
449
447
|
|
|
450
448
|
testPatchOverwrittenDerived() {
|
|
@@ -470,9 +468,10 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
470
468
|
members: {
|
|
471
469
|
sayJuhu() {
|
|
472
470
|
return super.sayJuhu() + " Mixin";
|
|
473
|
-
}
|
|
471
|
+
}
|
|
474
472
|
}
|
|
475
473
|
});
|
|
474
|
+
|
|
476
475
|
qx.Class.patch(qx.PatchDerived, qx.MPatch);
|
|
477
476
|
|
|
478
477
|
var o = new qx.PatchDerived();
|
|
@@ -481,12 +480,11 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
481
480
|
},
|
|
482
481
|
|
|
483
482
|
testPatchOverwrittenDerivedInBaseClass() {
|
|
484
|
-
|
|
485
483
|
qx.Mixin.define("qx.MPatch", {
|
|
486
484
|
members: {
|
|
487
485
|
sayJuhu() {
|
|
488
486
|
return super.sayJuhu() + " Mixin";
|
|
489
|
-
}
|
|
487
|
+
}
|
|
490
488
|
}
|
|
491
489
|
});
|
|
492
490
|
|
|
@@ -517,7 +515,6 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
517
515
|
var o = new qx.PatchDerived();
|
|
518
516
|
this.assertEquals("Juhu Mixin Derived", o.sayJuhu());
|
|
519
517
|
o.dispose();
|
|
520
|
-
|
|
521
518
|
},
|
|
522
519
|
|
|
523
520
|
testPatchMultiOverwrittenDerived() {
|
|
@@ -529,6 +526,7 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
529
526
|
}
|
|
530
527
|
}
|
|
531
528
|
});
|
|
529
|
+
|
|
532
530
|
qx.Class.define("qx.B", {
|
|
533
531
|
extend: qx.A,
|
|
534
532
|
members: {
|
|
@@ -537,6 +535,7 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
537
535
|
}
|
|
538
536
|
}
|
|
539
537
|
});
|
|
538
|
+
|
|
540
539
|
qx.Class.define("qx.C", {
|
|
541
540
|
extend: qx.B,
|
|
542
541
|
members: {
|
|
@@ -545,27 +544,31 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
545
544
|
}
|
|
546
545
|
}
|
|
547
546
|
});
|
|
547
|
+
|
|
548
548
|
qx.Mixin.define("qx.MA", {
|
|
549
549
|
members: {
|
|
550
550
|
sayJuhu() {
|
|
551
551
|
return super.sayJuhu() + " MA";
|
|
552
|
-
}
|
|
552
|
+
}
|
|
553
553
|
}
|
|
554
554
|
});
|
|
555
|
+
|
|
555
556
|
qx.Mixin.define("qx.MB", {
|
|
556
557
|
members: {
|
|
557
558
|
sayJuhu() {
|
|
558
559
|
return super.sayJuhu() + " MB";
|
|
559
|
-
}
|
|
560
|
+
}
|
|
560
561
|
}
|
|
561
562
|
});
|
|
563
|
+
|
|
562
564
|
qx.Mixin.define("qx.MC", {
|
|
563
565
|
members: {
|
|
564
566
|
sayJuhu() {
|
|
565
567
|
return super.sayJuhu() + " MC";
|
|
566
|
-
}
|
|
568
|
+
}
|
|
567
569
|
}
|
|
568
570
|
});
|
|
571
|
+
|
|
569
572
|
qx.Class.patch(qx.A, qx.MA);
|
|
570
573
|
qx.Class.patch(qx.B, qx.MB);
|
|
571
574
|
qx.Class.patch(qx.C, qx.MC);
|
|
@@ -573,7 +576,6 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
573
576
|
var o = new qx.C();
|
|
574
577
|
this.assertEquals("A MA B MB C MC", o.sayJuhu());
|
|
575
578
|
o.dispose();
|
|
576
|
-
|
|
577
579
|
},
|
|
578
580
|
|
|
579
581
|
testDoubleMixin() {
|
|
@@ -585,28 +587,29 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
585
587
|
}
|
|
586
588
|
}
|
|
587
589
|
});
|
|
590
|
+
|
|
588
591
|
qx.Mixin.define("qx.MDA", {
|
|
589
592
|
members: {
|
|
590
593
|
sayJuhu() {
|
|
591
594
|
return super.sayJuhu() + " MA";
|
|
592
|
-
}
|
|
595
|
+
}
|
|
593
596
|
}
|
|
594
597
|
});
|
|
598
|
+
|
|
595
599
|
qx.Mixin.define("qx.MDB", {
|
|
596
600
|
members: {
|
|
597
601
|
sayJuhu() {
|
|
598
602
|
return super.sayJuhu() + " MB";
|
|
599
|
-
}
|
|
603
|
+
}
|
|
600
604
|
}
|
|
601
605
|
});
|
|
606
|
+
|
|
602
607
|
qx.Class.patch(qx.D, qx.MDA);
|
|
603
608
|
qx.Class.patch(qx.D, qx.MDB);
|
|
604
609
|
|
|
605
610
|
var o = new qx.D();
|
|
606
611
|
this.assertEquals("Double MA MB", o.sayJuhu());
|
|
607
612
|
o.dispose();
|
|
608
|
-
|
|
609
613
|
}
|
|
610
|
-
|
|
611
|
-
}
|
|
614
|
+
}
|
|
612
615
|
});
|