diff options
Diffstat (limited to 'app/javascript')
11 files changed, 0 insertions, 620 deletions
diff --git a/app/javascript/themes/glitch/components/__tests__/__snapshots__/avatar-test.js.snap b/app/javascript/themes/glitch/components/__tests__/__snapshots__/avatar-test.js.snap deleted file mode 100644 index 4005c860f..000000000 --- a/app/javascript/themes/glitch/components/__tests__/__snapshots__/avatar-test.js.snap +++ /dev/null @@ -1,35 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`<Avatar /> Autoplay renders a animated avatar 1`] = ` -<div - className="account__avatar" - data-avatar-of="@alice" - onMouseEnter={[Function]} - onMouseLeave={[Function]} - style={ - Object { - "backgroundImage": "url(/animated/alice.gif)", - "backgroundSize": "100px 100px", - "height": "100px", - "width": "100px", - } - } -/> -`; - -exports[`<Avatar /> Still renders a still avatar 1`] = ` -<div - className="account__avatar" - data-avatar-of="@alice" - onMouseEnter={[Function]} - onMouseLeave={[Function]} - style={ - Object { - "backgroundImage": "url(/static/alice.jpg)", - "backgroundSize": "100px 100px", - "height": "100px", - "width": "100px", - } - } -/> -`; diff --git a/app/javascript/themes/glitch/components/__tests__/__snapshots__/avatar_overlay-test.js.snap b/app/javascript/themes/glitch/components/__tests__/__snapshots__/avatar_overlay-test.js.snap deleted file mode 100644 index d9e5e5252..000000000 --- a/app/javascript/themes/glitch/components/__tests__/__snapshots__/avatar_overlay-test.js.snap +++ /dev/null @@ -1,26 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`<AvatarOverlay renders a overlay avatar 1`] = ` -<div - className="account__avatar-overlay" -> - <div - className="account__avatar-overlay-base" - data-avatar-of="@alice" - style={ - Object { - "backgroundImage": "url(/static/alice.jpg)", - } - } - /> - <div - className="account__avatar-overlay-overlay" - data-avatar-of="@eve@blackhat.lair" - style={ - Object { - "backgroundImage": "url(/static/eve.jpg)", - } - } - /> -</div> -`; diff --git a/app/javascript/themes/glitch/components/__tests__/__snapshots__/button-test.js.snap b/app/javascript/themes/glitch/components/__tests__/__snapshots__/button-test.js.snap deleted file mode 100644 index 707cbf673..000000000 --- a/app/javascript/themes/glitch/components/__tests__/__snapshots__/button-test.js.snap +++ /dev/null @@ -1,130 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`<Button /> adds class "button-secondary" if props.secondary given 1`] = ` -<button - className="button button-secondary" - disabled={undefined} - onClick={[Function]} - style={ - Object { - "height": "36px", - "lineHeight": "36px", - "padding": "0 16px", - } - } -/> -`; - -exports[`<Button /> renders a button element 1`] = ` -<button - className="button" - disabled={undefined} - onClick={[Function]} - style={ - Object { - "height": "36px", - "lineHeight": "36px", - "padding": "0 16px", - } - } -/> -`; - -exports[`<Button /> renders a disabled attribute if props.disabled given 1`] = ` -<button - className="button" - disabled={true} - onClick={[Function]} - style={ - Object { - "height": "36px", - "lineHeight": "36px", - "padding": "0 16px", - } - } -/> -`; - -exports[`<Button /> renders class="button--block" if props.block given 1`] = ` -<button - className="button button--block" - disabled={undefined} - onClick={[Function]} - style={ - Object { - "height": "36px", - "lineHeight": "36px", - "padding": "0 16px", - } - } -/> -`; - -exports[`<Button /> renders the children 1`] = ` -<button - className="button" - disabled={undefined} - onClick={[Function]} - style={ - Object { - "height": "36px", - "lineHeight": "36px", - "padding": "0 16px", - } - } -> - <p> - children - </p> -</button> -`; - -exports[`<Button /> renders the given text 1`] = ` -<button - className="button" - disabled={undefined} - onClick={[Function]} - style={ - Object { - "height": "36px", - "lineHeight": "36px", - "padding": "0 16px", - } - } -> - foo -</button> -`; - -exports[`<Button /> renders the props.text instead of children 1`] = ` -<button - className="button" - disabled={undefined} - onClick={[Function]} - style={ - Object { - "height": "36px", - "lineHeight": "36px", - "padding": "0 16px", - } - } -> - foo -</button> -`; - -exports[`<Button /> renders title if props.title is given 1`] = ` -<button - className="button" - disabled={undefined} - onClick={[Function]} - style={ - Object { - "height": "36px", - "lineHeight": "36px", - "padding": "0 16px", - } - } - title="foo" -/> -`; diff --git a/app/javascript/themes/glitch/components/__tests__/__snapshots__/display_name-test.js.snap b/app/javascript/themes/glitch/components/__tests__/__snapshots__/display_name-test.js.snap deleted file mode 100644 index 533359ffe..000000000 --- a/app/javascript/themes/glitch/components/__tests__/__snapshots__/display_name-test.js.snap +++ /dev/null @@ -1,23 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`<DisplayName /> renders display name + account name 1`] = ` -<span - className="display-name" -> - <strong - className="display-name__html" - dangerouslySetInnerHTML={ - Object { - "__html": "<p>Foo</p>", - } - } - /> - - <span - className="display-name__account" - > - @ - bar@baz - </span> -</span> -`; diff --git a/app/javascript/themes/glitch/components/__tests__/avatar-test.js b/app/javascript/themes/glitch/components/__tests__/avatar-test.js deleted file mode 100644 index dd3f7b7d2..000000000 --- a/app/javascript/themes/glitch/components/__tests__/avatar-test.js +++ /dev/null @@ -1,36 +0,0 @@ -import React from 'react'; -import renderer from 'react-test-renderer'; -import { fromJS } from 'immutable'; -import Avatar from '../avatar'; - -describe('<Avatar />', () => { - const account = fromJS({ - username: 'alice', - acct: 'alice', - display_name: 'Alice', - avatar: '/animated/alice.gif', - avatar_static: '/static/alice.jpg', - }); - - const size = 100; - - describe('Autoplay', () => { - it('renders a animated avatar', () => { - const component = renderer.create(<Avatar account={account} animate size={size} />); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); - }); - - describe('Still', () => { - it('renders a still avatar', () => { - const component = renderer.create(<Avatar account={account} size={size} />); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); - }); - - // TODO add autoplay test if possible -}); diff --git a/app/javascript/themes/glitch/components/__tests__/avatar_overlay-test.js b/app/javascript/themes/glitch/components/__tests__/avatar_overlay-test.js deleted file mode 100644 index 44addea83..000000000 --- a/app/javascript/themes/glitch/components/__tests__/avatar_overlay-test.js +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react'; -import renderer from 'react-test-renderer'; -import { fromJS } from 'immutable'; -import AvatarOverlay from '../avatar_overlay'; - -describe('<AvatarOverlay', () => { - const account = fromJS({ - username: 'alice', - acct: 'alice', - display_name: 'Alice', - avatar: '/animated/alice.gif', - avatar_static: '/static/alice.jpg', - }); - - const friend = fromJS({ - username: 'eve', - acct: 'eve@blackhat.lair', - display_name: 'Evelyn', - avatar: '/animated/eve.gif', - avatar_static: '/static/eve.jpg', - }); - - it('renders a overlay avatar', () => { - const component = renderer.create(<AvatarOverlay account={account} friend={friend} />); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); -}); diff --git a/app/javascript/themes/glitch/components/__tests__/button-test.js b/app/javascript/themes/glitch/components/__tests__/button-test.js deleted file mode 100644 index 924ba39dc..000000000 --- a/app/javascript/themes/glitch/components/__tests__/button-test.js +++ /dev/null @@ -1,82 +0,0 @@ -import { shallow } from 'enzyme'; -import React from 'react'; -import renderer from 'react-test-renderer'; -import Button from '../button'; - -describe('<Button />', () => { - it('renders a button element', () => { - const component = renderer.create(<Button />); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); - - it('renders the given text', () => { - const text = 'foo'; - const component = renderer.create(<Button text={text} />); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); - - it('handles click events using the given handler', () => { - const handler = jest.fn(); - const button = shallow(<Button onClick={handler} />); - button.find('button').simulate('click'); - - expect(handler.mock.calls.length).toEqual(1); - }); - - it('does not handle click events if props.disabled given', () => { - const handler = jest.fn(); - const button = shallow(<Button onClick={handler} disabled />); - button.find('button').simulate('click'); - - expect(handler.mock.calls.length).toEqual(0); - }); - - it('renders a disabled attribute if props.disabled given', () => { - const component = renderer.create(<Button disabled />); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); - - it('renders the children', () => { - const children = <p>children</p>; - const component = renderer.create(<Button>{children}</Button>); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); - - it('renders the props.text instead of children', () => { - const text = 'foo'; - const children = <p>children</p>; - const component = renderer.create(<Button text={text}>{children}</Button>); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); - - it('renders class="button--block" if props.block given', () => { - const component = renderer.create(<Button block />); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); - - it('adds class "button-secondary" if props.secondary given', () => { - const component = renderer.create(<Button secondary />); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); - - it('renders title if props.title is given', () => { - const component = renderer.create(<Button title='foo' />); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); -}); diff --git a/app/javascript/themes/glitch/components/__tests__/display_name-test.js b/app/javascript/themes/glitch/components/__tests__/display_name-test.js deleted file mode 100644 index 0d040c4cd..000000000 --- a/app/javascript/themes/glitch/components/__tests__/display_name-test.js +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import renderer from 'react-test-renderer'; -import { fromJS } from 'immutable'; -import DisplayName from '../display_name'; - -describe('<DisplayName />', () => { - it('renders display name + account name', () => { - const account = fromJS({ - username: 'bar', - acct: 'bar@baz', - display_name_html: '<p>Foo</p>', - }); - const component = renderer.create(<DisplayName account={account} />); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); -}); diff --git a/app/javascript/themes/glitch/features/ui/components/__tests__/column-test.js b/app/javascript/themes/glitch/features/ui/components/__tests__/column-test.js deleted file mode 100644 index 1e5e1d8dc..000000000 --- a/app/javascript/themes/glitch/features/ui/components/__tests__/column-test.js +++ /dev/null @@ -1,34 +0,0 @@ -import React from 'react'; -import { mount } from 'enzyme'; -import Column from '../column'; -import ColumnHeader from '../column_header'; - -describe('<Column />', () => { - describe('<ColumnHeader /> click handler', () => { - const originalRaf = global.requestAnimationFrame; - - beforeEach(() => { - global.requestAnimationFrame = jest.fn(); - }); - - afterAll(() => { - global.requestAnimationFrame = originalRaf; - }); - - it('runs the scroll animation if the column contains scrollable content', () => { - const wrapper = mount( - <Column heading='notifications'> - <div className='scrollable' /> - </Column> - ); - wrapper.find(ColumnHeader).simulate('click'); - expect(global.requestAnimationFrame.mock.calls.length).toEqual(1); - }); - - it('does not try to scroll if there is no scrollable content', () => { - const wrapper = mount(<Column heading='notifications' />); - wrapper.find(ColumnHeader).simulate('click'); - expect(global.requestAnimationFrame.mock.calls.length).toEqual(0); - }); - }); -}); diff --git a/app/javascript/themes/glitch/util/emoji/__tests__/emoji-test.js b/app/javascript/themes/glitch/util/emoji/__tests__/emoji-test.js deleted file mode 100644 index d43dd005c..000000000 --- a/app/javascript/themes/glitch/util/emoji/__tests__/emoji-test.js +++ /dev/null @@ -1,77 +0,0 @@ -import emojify from '..'; - -describe('emoji', () => { - describe('.emojify', () => { - it('ignores unknown shortcodes', () => { - expect(emojify(':foobarbazfake:')).toEqual(':foobarbazfake:'); - }); - - it('ignores shortcodes inside of tags', () => { - expect(emojify('<p data-foo=":smile:"></p>')).toEqual('<p data-foo=":smile:"></p>'); - }); - - it('works with unclosed tags', () => { - expect(emojify('hello>')).toEqual('hello>'); - expect(emojify('<hello')).toEqual('<hello'); - }); - - it('works with unclosed shortcodes', () => { - expect(emojify('smile:')).toEqual('smile:'); - expect(emojify(':smile')).toEqual(':smile'); - }); - - it('does unicode', () => { - expect(emojify('\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66')).toEqual( - '<img draggable="false" class="emojione" alt="π©βπ©βπ¦βπ¦" title=":woman-woman-boy-boy:" src="/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg" />'); - expect(emojify('π¨βπ©βπ§βπ§')).toEqual( - '<img draggable="false" class="emojione" alt="π¨βπ©βπ§βπ§" title=":man-woman-girl-girl:" src="/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg" />'); - expect(emojify('π©βπ©βπ¦')).toEqual('<img draggable="false" class="emojione" alt="π©βπ©βπ¦" title=":woman-woman-boy:" src="/emoji/1f469-200d-1f469-200d-1f466.svg" />'); - expect(emojify('\u2757')).toEqual( - '<img draggable="false" class="emojione" alt="β" title=":exclamation:" src="/emoji/2757.svg" />'); - }); - - it('does multiple unicode', () => { - expect(emojify('\u2757 #\uFE0F\u20E3')).toEqual( - '<img draggable="false" class="emojione" alt="β" title=":exclamation:" src="/emoji/2757.svg" /> <img draggable="false" class="emojione" alt="#οΈβ£" title=":hash:" src="/emoji/23-20e3.svg" />'); - expect(emojify('\u2757#\uFE0F\u20E3')).toEqual( - '<img draggable="false" class="emojione" alt="β" title=":exclamation:" src="/emoji/2757.svg" /><img draggable="false" class="emojione" alt="#οΈβ£" title=":hash:" src="/emoji/23-20e3.svg" />'); - expect(emojify('\u2757 #\uFE0F\u20E3 \u2757')).toEqual( - '<img draggable="false" class="emojione" alt="β" title=":exclamation:" src="/emoji/2757.svg" /> <img draggable="false" class="emojione" alt="#οΈβ£" title=":hash:" src="/emoji/23-20e3.svg" /> <img draggable="false" class="emojione" alt="β" title=":exclamation:" src="/emoji/2757.svg" />'); - expect(emojify('foo \u2757 #\uFE0F\u20E3 bar')).toEqual( - 'foo <img draggable="false" class="emojione" alt="β" title=":exclamation:" src="/emoji/2757.svg" /> <img draggable="false" class="emojione" alt="#οΈβ£" title=":hash:" src="/emoji/23-20e3.svg" /> bar'); - }); - - it('ignores unicode inside of tags', () => { - expect(emojify('<p data-foo="\uD83D\uDC69\uD83D\uDC69\uD83D\uDC66"></p>')).toEqual('<p data-foo="\uD83D\uDC69\uD83D\uDC69\uD83D\uDC66"></p>'); - }); - - it('does multiple emoji properly (issue 5188)', () => { - expect(emojify('πππ')).toEqual('<img draggable="false" class="emojione" alt="π" title=":ok_hand:" src="/emoji/1f44c.svg" /><img draggable="false" class="emojione" alt="π" title=":rainbow:" src="/emoji/1f308.svg" /><img draggable="false" class="emojione" alt="π" title=":two_hearts:" src="/emoji/1f495.svg" />'); - expect(emojify('π π π')).toEqual('<img draggable="false" class="emojione" alt="π" title=":ok_hand:" src="/emoji/1f44c.svg" /> <img draggable="false" class="emojione" alt="π" title=":rainbow:" src="/emoji/1f308.svg" /> <img draggable="false" class="emojione" alt="π" title=":two_hearts:" src="/emoji/1f495.svg" />'); - }); - - it('does an emoji that has no shortcode', () => { - expect(emojify('ποΈ')).toEqual('<img draggable="false" class="emojione" alt="ποΈ" title="" src="/emoji/1f549.svg" />'); - }); - - it('does an emoji whose filename is irregular', () => { - expect(emojify('βοΈ')).toEqual('<img draggable="false" class="emojione" alt="βοΈ" title=":arrow_lower_left:" src="/emoji/2199.svg" />'); - }); - - it('avoid emojifying on invisible text', () => { - expect(emojify('<a href="http://example.com/test%F0%9F%98%84"><span class="invisible">http://</span><span class="ellipsis">example.com/te</span><span class="invisible">stπ</span></a>')) - .toEqual('<a href="http://example.com/test%F0%9F%98%84"><span class="invisible">http://</span><span class="ellipsis">example.com/te</span><span class="invisible">stπ</span></a>'); - expect(emojify('<span class="invisible">:luigi:</span>', { ':luigi:': { static_url: 'luigi.exe' } })) - .toEqual('<span class="invisible">:luigi:</span>'); - }); - - it('avoid emojifying on invisible text with nested tags', () => { - expect(emojify('<span class="invisible">π<span class="foo">bar</span>π΄</span>π')) - .toEqual('<span class="invisible">π<span class="foo">bar</span>π΄</span><img draggable="false" class="emojione" alt="π" title=":innocent:" src="/emoji/1f607.svg" />'); - expect(emojify('<span class="invisible">π<span class="invisible">π</span>π΄</span>π')) - .toEqual('<span class="invisible">π<span class="invisible">π</span>π΄</span><img draggable="false" class="emojione" alt="π" title=":innocent:" src="/emoji/1f607.svg" />'); - expect(emojify('<span class="invisible">π<br/>π΄</span>π')) - .toEqual('<span class="invisible">π<br/>π΄</span><img draggable="false" class="emojione" alt="π" title=":innocent:" src="/emoji/1f607.svg" />'); - }); - }); -}); diff --git a/app/javascript/themes/glitch/util/emoji/__tests__/emoji_index-test.js b/app/javascript/themes/glitch/util/emoji/__tests__/emoji_index-test.js deleted file mode 100644 index 53efa5743..000000000 --- a/app/javascript/themes/glitch/util/emoji/__tests__/emoji_index-test.js +++ /dev/null @@ -1,130 +0,0 @@ -import { pick } from 'lodash'; -import { emojiIndex } from 'emoji-mart'; -import { search } from '../emoji_mart_search_light'; - -const trimEmojis = emoji => pick(emoji, ['id', 'unified', 'native', 'custom']); - -describe('emoji_index', () => { - it('should give same result for emoji_index_light and emoji-mart', () => { - const expected = [ - { - id: 'pineapple', - unified: '1f34d', - native: 'π', - }, - ]; - expect(search('pineapple').map(trimEmojis)).toEqual(expected); - expect(emojiIndex.search('pineapple').map(trimEmojis)).toEqual(expected); - }); - - it('orders search results correctly', () => { - const expected = [ - { - id: 'apple', - unified: '1f34e', - native: 'π', - }, - { - id: 'pineapple', - unified: '1f34d', - native: 'π', - }, - { - id: 'green_apple', - unified: '1f34f', - native: 'π', - }, - { - id: 'iphone', - unified: '1f4f1', - native: 'π±', - }, - ]; - expect(search('apple').map(trimEmojis)).toEqual(expected); - expect(emojiIndex.search('apple').map(trimEmojis)).toEqual(expected); - }); - - it('handles custom emoji', () => { - const custom = [ - { - id: 'mastodon', - name: 'mastodon', - short_names: ['mastodon'], - text: '', - emoticons: [], - keywords: ['mastodon'], - imageUrl: 'http://example.com', - custom: true, - }, - ]; - search('', { custom }); - emojiIndex.search('', { custom }); - const expected = [ - { - id: 'mastodon', - custom: true, - }, - ]; - expect(search('masto').map(trimEmojis)).toEqual(expected); - expect(emojiIndex.search('masto').map(trimEmojis)).toEqual(expected); - }); - - it('should filter only emojis we care about, exclude pineapple', () => { - const emojisToShowFilter = unified => unified !== '1F34D'; - expect(search('apple', { emojisToShowFilter }).map((obj) => obj.id)) - .not.toContain('pineapple'); - expect(emojiIndex.search('apple', { emojisToShowFilter }).map((obj) => obj.id)) - .not.toContain('pineapple'); - }); - - it('can include/exclude categories', () => { - expect(search('flag', { include: ['people'] })).toEqual([]); - expect(emojiIndex.search('flag', { include: ['people'] })).toEqual([]); - }); - - it('does an emoji whose unified name is irregular', () => { - const expected = [ - { - 'id': 'water_polo', - 'unified': '1f93d', - 'native': 'π€½', - }, - { - 'id': 'man-playing-water-polo', - 'unified': '1f93d-200d-2642-fe0f', - 'native': 'π€½ββοΈ', - }, - { - 'id': 'woman-playing-water-polo', - 'unified': '1f93d-200d-2640-fe0f', - 'native': 'π€½ββοΈ', - }, - ]; - expect(search('polo').map(trimEmojis)).toEqual(expected); - expect(emojiIndex.search('polo').map(trimEmojis)).toEqual(expected); - }); - - it('can search for thinking_face', () => { - const expected = [ - { - id: 'thinking_face', - unified: '1f914', - native: 'π€', - }, - ]; - expect(search('thinking_fac').map(trimEmojis)).toEqual(expected); - expect(emojiIndex.search('thinking_fac').map(trimEmojis)).toEqual(expected); - }); - - it('can search for woman-facepalming', () => { - const expected = [ - { - id: 'woman-facepalming', - unified: '1f926-200d-2640-fe0f', - native: 'π€¦ββοΈ', - }, - ]; - expect(search('woman-facep').map(trimEmojis)).toEqual(expected); - expect(emojiIndex.search('woman-facep').map(trimEmojis)).toEqual(expected); - }); -}); |