summaryrefslogtreecommitdiffstats
path: root/webapp/tests/client/client_file.test.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/tests/client/client_file.test.jsx')
-rw-r--r--webapp/tests/client/client_file.test.jsx248
1 files changed, 248 insertions, 0 deletions
diff --git a/webapp/tests/client/client_file.test.jsx b/webapp/tests/client/client_file.test.jsx
new file mode 100644
index 000000000..aa0704b5a
--- /dev/null
+++ b/webapp/tests/client/client_file.test.jsx
@@ -0,0 +1,248 @@
+// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
+
+const fs = require('fs');
+
+describe('Client.File', function() {
+ const testGifFileName = 'testFile.gif';
+
+ beforeAll(function() {
+ // write a temporary file so that we have something to upload for testing
+ const buffer = new Buffer('R0lGODlhAQABAIABAP///wAAACwAAAAAAQABAAACAkQBADs=', 'base64');
+
+ const testGif = fs.openSync(testGifFileName, 'w+');
+ fs.writeFileSync(testGif, buffer);
+ });
+
+ afterAll(function() {
+ fs.unlinkSync(testGifFileName);
+ });
+
+ test('uploadFile', function(done) {
+ TestHelper.initBasic(done, () => {
+ const clientId = TestHelper.generateId();
+
+ TestHelper.basicClient().uploadFile(
+ fs.createReadStream(testGifFileName),
+ testGifFileName,
+ TestHelper.basicChannel().id,
+ clientId,
+ function(resp) {
+ expect(resp.file_infos.length).toBe(1);
+ expect(resp.client_ids.length).toBe(1);
+ expect(resp.client_ids[0]).toEqual(clientId);
+
+ done();
+ },
+ function(err) {
+ done.fail(new Error(err.message));
+ }
+ );
+ });
+ });
+
+ test('getFile', function(done) {
+ TestHelper.initBasic(done, () => {
+ TestHelper.basicClient().uploadFile(
+ fs.createReadStream(testGifFileName),
+ testGifFileName,
+ TestHelper.basicChannel().id,
+ '',
+ function(resp) {
+ TestHelper.basicClient().getFile(
+ resp.file_infos[0].id,
+ function() {
+ done();
+ },
+ function(err2) {
+ done.fail(new Error(err2.message));
+ }
+ );
+ },
+ function(err) {
+ done.fail(new Error(err.message));
+ }
+ );
+ });
+ });
+
+ test('getFileThumbnail', function(done) {
+ TestHelper.initBasic(done, () => {
+ TestHelper.basicClient().uploadFile(
+ fs.createReadStream(testGifFileName),
+ testGifFileName,
+ TestHelper.basicChannel().id,
+ '',
+ function(resp) {
+ TestHelper.basicClient().getFileThumbnail(
+ resp.file_infos[0].id,
+ function() {
+ done();
+ },
+ function(err) {
+ done.fail(new Error(err.message));
+ }
+ );
+ },
+ function(err) {
+ done.fail(new Error(err.message));
+ }
+ );
+ });
+ });
+
+ test('getFilePreview', function(done) {
+ TestHelper.initBasic(done, () => {
+ TestHelper.basicClient().uploadFile(
+ fs.createReadStream(testGifFileName),
+ testGifFileName,
+ TestHelper.basicChannel().id,
+ '',
+ function(resp) {
+ TestHelper.basicClient().getFilePreview(
+ resp.file_infos[0].id,
+ function() {
+ done();
+ },
+ function(err2) {
+ done.fail(new Error(err2.message));
+ }
+ );
+ },
+ function(err) {
+ done.fail(new Error(err.message));
+ }
+ );
+ });
+ });
+
+ test('getFileInfo', function(done) {
+ TestHelper.initBasic(done, () => {
+ TestHelper.basicClient().uploadFile(
+ fs.createReadStream(testGifFileName),
+ testGifFileName,
+ TestHelper.basicChannel().id,
+ '',
+ function(resp) {
+ const fileId = resp.file_infos[0].id;
+
+ TestHelper.basicClient().getFileInfo(
+ fileId,
+ function(info) {
+ expect(info.id).toEqual(fileId);
+ expect(info.name).toEqual(testGifFileName);
+
+ done();
+ },
+ function(err2) {
+ done.fail(new Error(err2.message));
+ }
+ );
+ },
+ function(err) {
+ done.fail(new Error(err.message));
+ }
+ );
+ });
+ });
+
+ test('getPublicLink', function(done) {
+ TestHelper.initBasic(done, () => {
+ TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
+ TestHelper.basicClient().uploadFile(
+ fs.createReadStream(testGifFileName),
+ testGifFileName,
+ TestHelper.basicChannel().id,
+ '',
+ function(resp) {
+ const post = TestHelper.fakePost();
+ post.channel_id = TestHelper.basicChannel().id;
+ post.file_ids = resp.file_infos.map((info) => info.id);
+
+ TestHelper.basicClient().createPost(
+ post,
+ function(data) {
+ expect(data.file_ids).toEqual(post.file_ids);
+
+ TestHelper.basicClient().getPublicLink(
+ post.file_ids[0],
+ function() {
+ done.fail(new Error('public links should be disabled by default'));
+
+ // request.
+ // get(link).
+ // end(TestHelper.basicChannel().handleResponse.bind(
+ // this,
+ // 'getPublicLink',
+ // function() {
+ // done();
+ // },
+ // function(err4) {
+ // done.fail(new Error(err4.message));
+ // }
+ // ));
+ },
+ function() {
+ done();
+
+ // done.fail(new Error(err3.message));
+ }
+ );
+ },
+ function(err2) {
+ done.fail(new Error(err2.message));
+ }
+ );
+ },
+ function(err) {
+ done.fail(new Error(err.message));
+ }
+ );
+ });
+ });
+
+ test('getFileInfosForPost', function(done) {
+ TestHelper.initBasic(done, () => {
+ TestHelper.basicClient().uploadFile(
+ fs.createReadStream(testGifFileName),
+ testGifFileName,
+ TestHelper.basicChannel().id,
+ '',
+ function(resp) {
+ const post = TestHelper.fakePost();
+ post.channel_id = TestHelper.basicChannel().id;
+ post.file_ids = resp.file_infos.map((info) => info.id);
+
+ TestHelper.basicClient().createPost(
+ post,
+ function(data) {
+ expect(data.file_ids).toEqual(post.file_ids);
+
+ TestHelper.basicClient().getFileInfosForPost(
+ post.channel_id,
+ data.id,
+ function(files) {
+ expect(files.length).toBe(1);
+ expect(files[0].id).toEqual(resp.file_infos[0].id);
+
+ done();
+ },
+ function(err3) {
+ done.fail(new Error(err3.message));
+ }
+ );
+ },
+ function(err2) {
+ done.fail(new Error(err2.message));
+ }
+ );
+ },
+ function(err) {
+ done.fail(new Error(err.message));
+ }
+ );
+ });
+ });
+});