2019-03-20 23:42:43 +03:00
|
|
|
describe('Clipboard', () => {
|
|
|
|
describe('write(text, metadata) and read()', () => {
|
|
|
|
it('writes and reads text to/from the native clipboard', () => {
|
|
|
|
expect(atom.clipboard.read()).toBe('initial clipboard content')
|
|
|
|
atom.clipboard.write('next')
|
|
|
|
expect(atom.clipboard.read()).toBe('next')
|
|
|
|
})
|
2020-10-30 16:40:57 +03:00
|
|
|
|
2019-03-20 23:42:43 +03:00
|
|
|
it('returns metadata if the item on the native clipboard matches the last written item', () => {
|
|
|
|
atom.clipboard.write('next', {meta: 'data'})
|
|
|
|
expect(atom.clipboard.read()).toBe('next')
|
|
|
|
expect(atom.clipboard.readWithMetadata().text).toBe('next')
|
|
|
|
expect(atom.clipboard.readWithMetadata().metadata).toEqual({meta: 'data'})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
describe('line endings', () => {
|
|
|
|
let originalPlatform = process.platform
|
|
|
|
|
|
|
|
const eols = new Map([['win32', '\r\n'], ['darwin', '\n'], ['linux', '\n']])
|
|
|
|
for (let [platform, eol] of eols) {
|
|
|
|
it(`converts line endings to the OS's native line endings on ${platform}`, () => {
|
|
|
|
Object.defineProperty(process, 'platform', {value: platform})
|
|
|
|
|
|
|
|
atom.clipboard.write('next\ndone\r\n\n', {meta: 'data'})
|
|
|
|
expect(atom.clipboard.readWithMetadata()).toEqual({text: `next${eol}done${eol}${eol}`, metadata: {meta: 'data'}})
|
|
|
|
|
|
|
|
Object.defineProperty(process, 'platform', {value: originalPlatform})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|