????JFIF??x?x????'
| Server IP : 79.136.114.73 / Your IP : 216.73.216.55 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/appsrv.astacus.se/forge/forge-api-nodejs-client/test/ |
Upload File : |
/**
* Forge SDK
* The Forge Platform contains an expanding collection of web service components that can be used with Autodesk cloud-based products or your own technologies. Take advantage of Autodesk’s expertise in design and engineering.
*
* OpenAPI spec version: 0.1.0
* Contact: forge.help@autodesk.com
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*
* Licensed 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.
*/
module.exports = (function () {
'use strict';
var expect = require('expect.js'),
sinon = require('sinon'),
request = require('request'),
ForgeSdk = require('../src'),
nock = require('nock');
var apiClient, oauth2client;
beforeEach(function () {
var FORGE_CLIENT_ID = process.env.FORGE_CLIENT_ID || '<your forge client ID>';
var FORGE_CLIENT_SECRET = process.env.FORGE_CLIENT_SECRET || '<your forge client secret>';
apiClient = new ForgeSdk.ApiClient();
oauth2client = new ForgeSdk.AuthClientTwoLegged(FORGE_CLIENT_ID, FORGE_CLIENT_SECRET, ['data:read', 'data:write']);
});
describe('ApiClient', function () {
describe('properties', function () {
it('should have basePath property', function () {
expect(apiClient).to.have.property('basePath');
});
it('should have basePath property', function () {
expect(apiClient).to.have.property('defaultHeaders');
});
it('should have basePath property', function () {
expect(apiClient).to.have.property('timeout');
});
});
describe('paramToString method', function () {
it('should work for a non-empty param', function () {
var a = 9,
now = new Date();
expect(apiClient.paramToString(a)).to.be('9');
expect(apiClient.paramToString(now)).to.be(now.toJSON());
});
it('should fail for empty param', function () {
var a = null,
b;
expect(apiClient.paramToString(a)).to.be('');
expect(apiClient.paramToString(b)).to.be('');
});
});
describe('buildUrl method', function () {
it('should work for a qualified URL', function () {
var path = '/test/{p1}/{p2}',
pathParams = {
p1: 'foo',
p2: true
};
expect(apiClient.buildUrl(path, pathParams)).to.be(apiClient.basePath + '/test/foo/true');
});
it('should ignore pathParams when URL is not qualified', function () {
var path = '/test';
var pathParams = {
p1: 'foo',
p2: true
};
expect(apiClient.buildUrl(path, pathParams)).to.be(apiClient.basePath + '/test');
});
});
describe('isJsonMime method', function () {
it('should return true for a json mime', function () {
expect(apiClient.isJsonMime('application/json')).to.be(true);
});
it('should return true for a vnd.api+json mime', function () {
expect(apiClient.isJsonMime('application/vnd.api+json')).to.be(true);
});
it('should return false for a non-json mime', function () {
expect(apiClient.isJsonMime('application/xml')).to.be(false);
});
});
describe('jsonPreferredMime method', function () {
it('should return the json mime if it is present in an array', function () {
var mimeTypes = ['application/xml', 'application/json', 'application/x-www-form-urlencoded'];
expect(apiClient.jsonPreferredMime(mimeTypes)).to.be('application/json');
});
it('should return the vnd.api+json mime if it is present in an array', function () {
var mimeTypes = ['application/xml', 'application/vnd.api+json', 'application/x-www-form-urlencoded'];
expect(apiClient.jsonPreferredMime(mimeTypes)).to.be('application/vnd.api+json');
});
it('should return the first json mime if it is present in an array', function () {
var mimeTypes = ['application/xml', 'application/json', 'application/vnd.api+json', 'application/x-www-form-urlencoded'];
expect(apiClient.jsonPreferredMime(mimeTypes)).to.be('application/json');
});
it('should return the first mime if json is not present in an array', function () {
var mimeTypes = ['application/xml', 'application/x-www-form-urlencoded'];
expect(apiClient.jsonPreferredMime(mimeTypes)).to.be('application/xml');
});
it('should fail for a an empty array', function () {
expect(apiClient.jsonPreferredMime([])).to.not.be.ok();
});
});
describe('isFileParam method', function () {
it('should return true for a Buffer file type', function () {
var buffer = Buffer.alloc(100);
expect(apiClient.isFileParam(buffer)).to.be(true);
});
it('should return true for a ReadStream file type', function () {
var readStream = require('fs').createReadStream(__filename);
expect(apiClient.isFileParam(readStream)).to.be(true);
});
it('should return false for a non-file type', function () {
expect(apiClient.isFileParam('foo')).to.be(false);
expect(apiClient.isFileParam(true)).to.be(false);
expect(apiClient.isFileParam(3)).to.be(false);
});
});
describe('normalizeParams method', function () {
it('should normalize objects', function () {
expect(apiClient.normalizeParams({
foo: 'bar',
'baz': true
})).to.eql({
foo: 'bar',
'baz': 'true'
});
});
it('should normalize arrays', function () {
expect(apiClient.normalizeParams({
foo: ['abc', true]
})).to.eql({
foo: ['abc', true]
});
});
});
describe('buildCollectionParam method', function () {
it('should build collection param for csv', function () {
expect(apiClient.buildCollectionParam(['foo', 'bar'], 'csv')).to.equal('foo' + ForgeSdk.ApiClient.CollectionFormatEnum.CSV + 'bar');
});
it('should build collection param for ssv', function () {
expect(apiClient.buildCollectionParam(['foo', 'bar'], 'ssv')).to.equal('foo' + ForgeSdk.ApiClient.CollectionFormatEnum.SSV + 'bar');
});
it('should build collection param for tsv', function () {
expect(apiClient.buildCollectionParam(['foo', 'bar'], 'tsv')).to.equal('foo' + ForgeSdk.ApiClient.CollectionFormatEnum.TSV + 'bar');
});
it('should build collection param for pipes', function () {
expect(apiClient.buildCollectionParam(['foo', 'bar'], 'pipes')).to.equal('foo' + ForgeSdk.ApiClient.CollectionFormatEnum.PIPES + 'bar');
});
it('should build collection param for multi', function () {
expect(apiClient.buildCollectionParam(['foo', false], 'multi')).to.eql(['foo', 'false']);
});
it('should fail for an illegal format', function () {
try {
expect(apiClient.buildCollectionParam(['foo', 'bar'], 'baz')).to.throw();
} catch (err) {
expect(err).to.be.ok();
}
});
});
describe('applyAuthToRequest method', function () {
it('should add authentication header to the request for correct credentials', function () {
var requestParams = {};
var headers = {
foo: 'bar'
};
var credentials = {
access_token: 'abcdef'
};
apiClient.applyAuthToRequest(requestParams, headers, oauth2client, credentials);
expect(headers).to.have.property('Authorization');
});
it('should not add authentication header to the request for empty credentials', function () {
var requestParams = {};
var headers = {
foo: 'bar'
};
var credentials = {};
apiClient.applyAuthToRequest(requestParams, headers, oauth2client, credentials);
expect(headers).to.not.have.property('Authorization');
});
it('should try to auto refresh an expired token 3-legged', function (done) {
var oauth2client3 = new ForgeSdk.AuthClientThreeLegged('FORGE_CLIENT_ID', 'FORGE_CLIENT_SECRET', 'http://example.com/callback',
['data:read', 'data:write'], true);
var mockedOauth3legged = sinon.stub(oauth2client3, 'refreshToken');
var requestParams = {
headers: {
foo: 'bar'
}
};
var credentials = {
access_token: 'abcdef',
refresh_token: 'sdfdfdsf',
expires_at: new Date().getMinutes() - 5
};
var headers = {
'foo': 'bar'
};
mockedOauth3legged.withArgs(credentials).returns(Promise.resolve({
access_token: '1234567',
refresh_token: '098765'
}));
apiClient.applyAuthToRequest(requestParams, headers, oauth2client3, credentials).then(function () {
expect(headers).to.have.property('Authorization');
mockedOauth3legged.restore();
done();
});
});
});
describe('debug method', function () {
it('able to work in debug mode', function () {
apiClient.isDebugMode = true;
apiClient.debug('foo');
apiClient.debug(10);
});
});
describe('callApi method', function () {
it('able to call api successfully', function (done) {
var path = '/oss/v2/buckets',
httpMethod = 'POST',
pathParams = {},
queryParams = {},
headerParams = {
'Custom-Header': 'foo'
},
formParams = {},
bodyParam = {
'bucketKey': 'test-bucket',
'policyKey': 'temporary'
},
contentTypes = ['application/json'],
accepts = ['application/json'],
returnType = ForgeSdk.Bucket,
credentials = {
access_token: 'abcdef'
};
nock(apiClient.basePath)
.post(path, {
bucketKey: bodyParam.bucketKey,
policyKey: bodyParam.policyKey
})
.reply(200, function (uri, respBody) {
// expect(this.req.headers).to.have.property('authorization');
// expect(this.req.headers).to.have.property('custom-header');
return respBody;
});
apiClient.callApi(path, httpMethod, pathParams,
queryParams, headerParams, formParams, bodyParam,
contentTypes, accepts, returnType, oauth2client, credentials).then(function (response) {
expect(response.body).to.have.property('bucketKey');
expect(response.body.bucketKey).to.equal('test-bucket');
done();
}, function (err) {
done(err);
});
});
it('able to call api successfully with vnd.api+json content-type', function (done) {
var path = '/oss/v2/buckets',
httpMethod = 'POST',
pathParams = {},
queryParams = {},
headerParams = {
'Custom-Header': 'foo'
},
formParams = {},
bodyParam = {
'bucketKey': 'test-bucket',
'policyKey': 'temporary'
},
contentTypes = ['application/vnd.api+json'],
accepts = ['application/json'],
returnType = ForgeSdk.Bucket,
credentials = {
access_token: 'abcdef'
};
nock(apiClient.basePath)
.post(path, {
bucketKey: bodyParam.bucketKey,
policyKey: bodyParam.policyKey
})
.reply(200, function (uri, respBody) {
// expect(this.req.headers).to.have.property('authorization');
// expect(this.req.headers).to.have.property('custom-header');
return respBody;
});
apiClient.callApi(path, httpMethod, pathParams,
queryParams, headerParams, formParams, bodyParam,
contentTypes, accepts, returnType, oauth2client, credentials).then(function (response) {
expect(response.body).to.have.property('bucketKey');
expect(response.body.bucketKey).to.equal('test-bucket');
done();
}, function (err) {
done(err);
});
});
it('able to call api successfully with form-data', function (done) {
var path = '/',
httpMethod = 'DELETE',
pathParams = {
'urn': 'test_string'
},
queryParams = {},
headerParams = {
'Custom-Header': 'foo'
},
formParams = {},
bodyParam = {},
contentTypes = ['multipart/form-data'],
accepts = ['application/vnd.api+json', 'application/json'],
returnType = ForgeSdk.Result,
credentials = {
access_token: 'abcdef'
};
nock(apiClient.basePath)
.delete(path)
.reply(200, {
result: 'success'
});
apiClient.callApi(path, httpMethod, pathParams,
queryParams, headerParams, formParams, bodyParam,
contentTypes, accepts, returnType, oauth2client, credentials).then(function (response) {
expect(response.body).to.have.property('result');
expect(response.body.result).to.equal('success');
done();
}, function (err) {
done(err);
});
});
it('able to call api successfully with x-www-url-encoded', function (done) {
var path = '/',
httpMethod = 'DELETE',
pathParams = {
'urn': 'test_string'
},
queryParams = {},
headerParams = {
'Custom-Header': 'foo'
},
formParams = {},
bodyParam = {},
contentTypes = ['application/x-www-form-urlencoded'],
accepts = ['application/vnd.api+json', 'application/json'],
returnType = ForgeSdk.Result,
credentials = {
access_token: 'abcdef'
};
nock(apiClient.basePath)
.delete(path)
.reply(200, {
result: 'success'
});
apiClient.callApi(path, httpMethod, pathParams,
queryParams, headerParams, formParams, bodyParam,
contentTypes, accepts, returnType, oauth2client, credentials).then(function (response) {
expect(response.body).to.have.property('result');
expect(response.body.result).to.equal('success');
done();
}, function (err) {
done(err);
});
});
});
});
}());