summaryrefslogtreecommitdiffstats
path: root/src/jaegertracing/thrift/lib/js/test/test-jq.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
commit19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch)
tree42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/jaegertracing/thrift/lib/js/test/test-jq.js
parentInitial commit. (diff)
downloadceph-6d07fdb6bb33b1af39833b850bb6cf8af79fe293.tar.xz
ceph-6d07fdb6bb33b1af39833b850bb6cf8af79fe293.zip
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/jaegertracing/thrift/lib/js/test/test-jq.js')
-rw-r--r--src/jaegertracing/thrift/lib/js/test/test-jq.js159
1 files changed, 159 insertions, 0 deletions
diff --git a/src/jaegertracing/thrift/lib/js/test/test-jq.js b/src/jaegertracing/thrift/lib/js/test/test-jq.js
new file mode 100644
index 000000000..f62bb957b
--- /dev/null
+++ b/src/jaegertracing/thrift/lib/js/test/test-jq.js
@@ -0,0 +1,159 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ /* jshint -W100 */
+
+/*
+ * JavaScript test suite for ThriftTest.thrift. These tests
+ * will run only with jQuery (-gen js:jquery) Apache Thrift
+ * interfaces. To create client code:
+ * $ thrift -gen js:jquery ThriftTest.thrift
+ *
+ * See also:
+ * ++ test.js for generic tests
+ * ++ test-nojq.js for "-gen js" only tests
+ */
+
+
+//////////////////////////////////
+//jQuery asynchronous tests
+jQuery.ajaxSetup({ timeout: 0 });
+
+QUnit.module('jQ Async Manual');
+
+ QUnit.test('testI32', function(assert) {
+ assert.expect(2);
+ const done = assert.async(2);
+
+ const transport = new Thrift.Transport();
+ const protocol = new Thrift.Protocol(transport);
+ const client = new ThriftTest.ThriftTestClient(protocol);
+
+ const jqxhr = jQuery.ajax({
+ url: '/service',
+ data: client.send_testI32(Math.pow(-2, 31)),
+ type: 'POST',
+ cache: false,
+ dataType: 'text',
+ success: function(res) {
+ transport.setRecvBuffer(res);
+ assert.equal(client.recv_testI32(), Math.pow(-2, 31));
+ done();
+ },
+ error: function() { assert.ok(false); },
+ complete: function() {
+ assert.ok(true);
+ done();
+ }
+ });
+ });
+
+ QUnit.test('testI64', function(assert) {
+ assert.expect(2);
+ const done = assert.async(2);
+
+ const transport = new Thrift.Transport();
+ const protocol = new Thrift.Protocol(transport);
+ const client = new ThriftTest.ThriftTestClient(protocol);
+
+ jQuery.ajax({
+ url: '/service',
+ //This is usually 2^61 but JS cannot represent anything over 2^52 accurately
+ data: client.send_testI64(Math.pow(-2, 52)),
+ type: 'POST',
+ cache: false,
+ dataType: 'text',
+ success: function(res) {
+ transport.setRecvBuffer(res);
+ //This is usually 2^61 but JS cannot represent anything over 2^52 accurately
+ assert.equal(client.recv_testI64(), Math.pow(-2, 52));
+ done();
+ },
+ error: function() { assert.ok(false); },
+ complete: function() {
+ assert.ok(true);
+ done();
+ }
+ });
+ });
+
+
+QUnit.module('jQ Async');
+ QUnit.test('I32', function(assert) {
+ assert.expect(3);
+
+ const done = assert.async(3);
+ client.testI32(Math.pow(2, 30), function(result) {
+ assert.equal(result, Math.pow(2, 30));
+ done();
+ });
+
+ const jqxhr = client.testI32(Math.pow(-2, 31), function(result) {
+ assert.equal(result, Math.pow(-2, 31));
+ done();
+ });
+
+ jqxhr.success(function(result) {
+ assert.equal(result, Math.pow(-2, 31));
+ done();
+ });
+ });
+
+ QUnit.test('I64', function(assert) {
+ assert.expect(4);
+
+ const done = assert.async(4);
+ //This is usually 2^60 but JS cannot represent anything over 2^52 accurately
+ client.testI64(Math.pow(2, 52), function(result) {
+ assert.equal(result, Math.pow(2, 52));
+ done();
+ });
+
+ //This is usually 2^60 but JS cannot represent anything over 2^52 accurately
+ client.testI64(Math.pow(-2, 52), function(result) {
+ assert.equal(result, Math.pow(-2, 52));
+ done();
+ })
+ .error(function(xhr, status, e) { assert.ok(false, e.message); })
+ .success(function(result) {
+ //This is usually 2^60 but JS cannot represent anything over 2^52 accurately
+ assert.equal(result, Math.pow(-2, 52));
+ done();
+ })
+ .complete(function() {
+ assert.ok(true);
+ done();
+ });
+ });
+
+ QUnit.test('Xception', function(assert) {
+ assert.expect(2);
+
+ const done = assert.async(2);
+
+ const dfd = client.testException('Xception', function(result) {
+ assert.ok(false);
+ done();
+ })
+ .error(function(xhr, status, e) {
+ assert.equal(e.errorCode, 1001);
+ assert.equal(e.message, 'Xception');
+ done();
+ $(document).ajaxError( function() { done(); } );
+ });
+ });