forked from Ivasoft/mattermost-mobile
* Show image paste menu * Get pasted image * Add more info for file * Add custom text input and add extension * Dismiss contextual menu after paste image * Group image info together * Add max file check * Fix max file size text * Add PropTypes * Add support for gif and tiff * add onchange null check * Use onPaste event * Move get image info logic * Clean up listener when no observer * Add android upload * Copy file from google docs * Clean up file after upload * Prevent text pasted in textbox if it's content uri * Rename paste file thread * Move on paste listener logic * Remove the redundant data in ios * Get realpath of item * Clean up * Only download for image * Rename to custom text input * Update RNPasteableEditTextOnPasteListener.java * Handle for download image failed * Fix eslint * Fix test * Allow multiple images to be pasted * Remove additional null check * Add managed control for Android * Disable only copy, cut and paste * Accept image in Android edit text * Add comment for custom text input * Do not upload when more than max file * Stop uplaod when exceed file size * Fix crash when clip data is null * Return error to JS * Move download file logic * Remove console * Add some tests * Add test for handleUploadImages * Add test for file_upload_item * Use ImageCacheManager to cache remote images * Fix crashes from one note * Remove commented code * Update test
45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
import React from 'react';
|
|
import {NativeEventEmitter} from 'react-native';
|
|
import {shallow} from 'enzyme';
|
|
|
|
import {PasteableTextInput} from './index';
|
|
|
|
const nativeEventEmitter = new NativeEventEmitter();
|
|
|
|
describe('PasteableTextInput', () => {
|
|
test('should render pasteable text input', () => {
|
|
const onPaste = jest.fn();
|
|
const text = 'My Text';
|
|
const component = shallow(
|
|
<PasteableTextInput onPaste={onPaste}>{text}</PasteableTextInput>
|
|
);
|
|
expect(component).toMatchSnapshot();
|
|
});
|
|
|
|
test('should call onPaste props if native onPaste trigger', () => {
|
|
const onPaste = jest.fn();
|
|
const event = {someData: 'data'};
|
|
const text = 'My Text';
|
|
shallow(
|
|
<PasteableTextInput onPaste={onPaste}>{text}</PasteableTextInput>
|
|
);
|
|
nativeEventEmitter.emit('onPaste', event);
|
|
expect(onPaste).toHaveBeenCalledWith(null, event);
|
|
});
|
|
|
|
test('should remove onPaste listener when unmount', () => {
|
|
const mockRemove = jest.fn();
|
|
const onPaste = jest.fn();
|
|
const text = 'My Text';
|
|
const component = shallow(
|
|
<PasteableTextInput onPaste={onPaste}>{text}</PasteableTextInput>
|
|
);
|
|
|
|
component.instance().subscription.remove = mockRemove;
|
|
component.instance().componentWillUnmount();
|
|
expect(mockRemove).toHaveBeenCalled();
|
|
});
|
|
});
|