mirror of https://github.com/joomla/joomla-cms.git
192 lines
7.9 KiB
JavaScript
192 lines
7.9 KiB
JavaScript
// Ensure test dir is available and has correct permissions
|
|
beforeEach(() => cy.task('writeFile', { path: 'images/test-dir/dummy.txt', content: '1' }));
|
|
|
|
afterEach(() => cy.task('deleteFolder', 'images/test-dir'));
|
|
|
|
describe('Test that media files API endpoint', () => {
|
|
it('can deliver a list of files', () => {
|
|
cy.api_get('/media/files')
|
|
.then((response) => {
|
|
cy.wrap(response).its('body').its('data.0').its('attributes')
|
|
.its('name')
|
|
.should('include', 'banners');
|
|
cy.wrap(response).its('body').its('data.4').its('attributes')
|
|
.its('name')
|
|
.should('include', 'joomla_black.png');
|
|
});
|
|
});
|
|
|
|
it('can deliver a list of files in a subfolder', () => {
|
|
cy.api_get('/media/files/sampledata/cassiopeia/')
|
|
.then((response) => cy.wrap(response).its('body').its('data.0').its('attributes')
|
|
.its('name')
|
|
.should('include', 'nasa1-1200.jpg'));
|
|
});
|
|
|
|
it('can deliver a list of files with an adapter', () => {
|
|
cy.api_get('/media/files/local-images:/sampledata/cassiopeia/')
|
|
.then((response) => cy.wrap(response).its('body').its('data.0').its('attributes')
|
|
.its('name')
|
|
.should('include', 'nasa1-1200.jpg'));
|
|
});
|
|
|
|
it('can search in filenames', () => {
|
|
cy.api_get('/media/files?filter[search]=joomla')
|
|
.then((response) => {
|
|
cy.wrap(response).its('body').its('data.0').its('attributes')
|
|
.its('name')
|
|
.should('include', 'joomla_black.png');
|
|
cy.wrap(response).its('body').its('data').should('have.length', 1);
|
|
});
|
|
});
|
|
|
|
it('can deliver a single file', () => {
|
|
cy.api_get('/media/files/joomla_black.png')
|
|
.then((response) => cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('name')
|
|
.should('include', 'joomla_black.png'));
|
|
});
|
|
|
|
it('can deliver a single file with the url', () => {
|
|
cy.api_get('/media/files/joomla_black.png?url=1')
|
|
.then((response) => cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('url')
|
|
.should('include', 'joomla_black.png'));
|
|
});
|
|
|
|
it('can deliver a single folder', () => {
|
|
cy.api_get('/media/files/sampledata/cassiopeia')
|
|
.then((response) => cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('name')
|
|
.should('include', 'cassiopeia'));
|
|
});
|
|
|
|
it('can create a file without adapter', () => {
|
|
cy.readFile('tests/System/data/com_media/test-image-1.jpg', 'binary')
|
|
.then((data) => cy.api_post('/media/files', { path: 'test-dir/test.jpg', content: Buffer.from(data, 'binary').toString('base64') }))
|
|
.then((response) => {
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('name')
|
|
.should('include', 'test.jpg');
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('path')
|
|
.should('include', 'local-images:/test-dir/test.jpg');
|
|
});
|
|
});
|
|
|
|
it('can create a folder without adapter', () => {
|
|
cy.api_post('/media/files', { path: 'test-dir/test-from-create' })
|
|
.then((response) => {
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('name')
|
|
.should('include', 'test-from-create');
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('path')
|
|
.should('include', 'local-images:/test-dir/test-from-create');
|
|
});
|
|
});
|
|
|
|
it('can create a file with adapter', () => {
|
|
cy.readFile('tests/System/data/com_media/test-image-1.jpg', 'binary')
|
|
.then((data) => cy.api_post('/media/files', { path: 'local-images:/test-dir/test.jpg', content: Buffer.from(data, 'binary').toString('base64') }))
|
|
.then((response) => {
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('name')
|
|
.should('include', 'test.jpg');
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('path')
|
|
.should('include', 'local-images:/test-dir/test.jpg');
|
|
});
|
|
});
|
|
|
|
it('can create a folder with adapter', () => {
|
|
cy.api_post('/media/files', { path: 'local-images:/test-dir/test-from-create' })
|
|
.then((response) => {
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('name')
|
|
.should('include', 'test-from-create');
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('path')
|
|
.should('include', 'local-images:/test-dir/test-from-create');
|
|
});
|
|
});
|
|
|
|
it('can update a file without adapter', () => {
|
|
cy.task('writeFile', { path: 'images/test-dir/override.jpg', content: '1' })
|
|
.then(() => cy.readFile('tests/System/data/com_media/test-image-1.jpg', 'binary'))
|
|
.then((data) => cy.api_patch(
|
|
'/media/files/test-dir/override.jpg',
|
|
{ path: 'test-dir/override.jpg', content: Buffer.from(data, 'binary').toString('base64') },
|
|
)).then((response) => {
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('name')
|
|
.should('include', 'override.jpg');
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('path')
|
|
.should('include', 'local-images:/test-dir/override.jpg');
|
|
});
|
|
});
|
|
|
|
it('can update a folder without adapter', () => {
|
|
cy.task('writeFile', { path: 'images/test-dir/override/test.jpg', content: '1' })
|
|
.then(() => cy.api_patch('/media/files/test-dir/override', { path: 'test-dir/override-new' }))
|
|
.then((response) => {
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('name')
|
|
.should('include', 'override-new');
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('path')
|
|
.should('include', 'local-images:/test-dir/override-new');
|
|
});
|
|
});
|
|
|
|
it('can update a file with adapter', () => {
|
|
cy.task('writeFile', { path: 'images/test-dir/override.jpg', content: '1' })
|
|
.then(() => cy.readFile('tests/System/data/com_media/test-image-1.jpg', 'binary'))
|
|
.then((data) => cy.api_patch(
|
|
'/media/files/local-images:/test-dir/override.jpg',
|
|
{ path: 'local-images:/test-dir/override.jpg', content: Buffer.from(data, 'binary').toString('base64') },
|
|
)).then((response) => {
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('name')
|
|
.should('include', 'override.jpg');
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('path')
|
|
.should('include', 'local-images:/test-dir/override.jpg');
|
|
});
|
|
});
|
|
|
|
it('can update a folder with adapter', () => {
|
|
cy.task('writeFile', { path: 'images/test-dir/override/test.jpg', content: '1' })
|
|
.then(() => cy.api_patch('/media/files/local-images:/test-dir/override', { path: 'local-images:/test-dir/override-new' }))
|
|
.then((response) => {
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('name')
|
|
.should('include', 'override-new');
|
|
cy.wrap(response).its('body').its('data').its('attributes')
|
|
.its('path')
|
|
.should('include', 'local-images:/test-dir/override-new');
|
|
});
|
|
});
|
|
|
|
it('can delete a file without adapter', () => {
|
|
cy.task('writeFile', { path: 'images/test-dir/todelete.jpg', content: '1' })
|
|
.then(() => cy.api_delete('/media/files/test-dir/todelete.jpg'));
|
|
});
|
|
|
|
it('can delete a folder without adapter', () => {
|
|
cy.task('writeFile', { path: 'images/test-dir/todelete/dummy.txt', content: '1' })
|
|
.then(() => cy.api_delete('/media/files/test-dir/todelete'));
|
|
});
|
|
|
|
it('can delete a file with adapter', () => {
|
|
cy.task('writeFile', { path: 'images/test-dir/todelete.jpg', content: '1' })
|
|
.then(() => cy.api_delete('/media/files/local-images:/test-dir/todelete.jpg'));
|
|
});
|
|
|
|
it('can delete a folder with adapter', () => {
|
|
cy.task('writeFile', { path: 'images/test-dir/todelete/dummy.txt', content: '1' })
|
|
.then(() => cy.api_delete('/media/files/local-images:/test-dir/todelete'));
|
|
});
|
|
});
|