Skip to content

Commit ac76800

Browse files
committed
Merge branch 'main' into 'dataverse_required_metadata-862'
# Conflicts: # cypress/support/commands.js # version.xml
2 parents 4b0b905 + 5eb4a37 commit ac76800

6 files changed

Lines changed: 58 additions & 21 deletions

File tree

classes/DraftDatasetFilesValidator.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ public function datasetHasReadmeFile(array $draftDatasetFiles): bool
5050
$fileName = strtolower($file->getFileName());
5151
$fileType = $tempFile->getData('filetype');
5252

53-
if (str_contains($fileName, 'readme')
53+
if (
54+
$this->filenameHasReadmeKeyword($fileName)
5455
&& ($fileType == 'application/pdf' || $fileType == 'text/plain')
5556
) {
5657
return true;
@@ -59,4 +60,16 @@ public function datasetHasReadmeFile(array $draftDatasetFiles): bool
5960

6061
return false;
6162
}
63+
64+
private function filenameHasReadmeKeyword(string $fileName): bool
65+
{
66+
$readmeKeywords = ['readme', 'leiame', 'leia-me', 'leame'];
67+
68+
foreach ($readmeKeywords as $keyword) {
69+
if (str_contains($fileName, $keyword)) {
70+
return true;
71+
}
72+
}
73+
return false;
74+
}
6275
}

classes/dataverseConfiguration/DefaultAdditionalInstructions.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ private function getEnglishInstructions()
1919
generated, or used in the scientific research and that facilitate the evaluation,
2020
validation, understanding, and reproduction of the research (e.g.: Databases, submitted
2121
questionnaires, anonymized responses, etc).</p>
22-
<p>2. It is mandatory to include a file named "Readme" (in .txt or .pdf format) containing
22+
<p>2. It is mandatory to include a file named "Readme"/"Leiame"/"Leame" (in .txt or .pdf format) containing
2323
information about the dataset and data files. This file should describe the research
2424
context, methodology, file structure, variables, and usage instructions, following
2525
best practices for scientific data management to ensure accessibility, understanding,
@@ -45,7 +45,7 @@ private function getSpanishInstructions()
4545
observados, generados o utilizados por la investigación científica y que faciliten la evaluación,
4646
validación, comprensión y reproducción de la investigación (ej.: Bases de datos, cuestionarios
4747
enviados, respuestas anonimizadas, etc).</p>
48-
<p>2. Es obligatorio incluir un archivo llamado "Readme" (en formato .txt o .pdf) que contenga
48+
<p>2. Es obligatorio incluir un archivo llamado "Readme"/"Leiame"/"Leame" (en formato .txt o .pdf) que contenga
4949
información del conjunto y archivos de datos. Este archivo debe describir el contexto de la
5050
investigación, metodología, estructura de los archivos, variables e instrucciones de uso, siguiendo
5151
las mejores prácticas de gestión de datos científicos para asegurar la accesibilidad,
@@ -72,7 +72,7 @@ private function getPortugueseInstructions()
7272
observados, gerados ou usados pela pesquisa científica e que facilitem a avaliação,
7373
validação, compreensão e reprodução da pesquisa (ex.: Banco de dados, questionários
7474
enviados, respostas anonimizadas, etc).</p>
75-
<p>2. É obrigatória a inclusão de um arquivo nomeado "Readme" (em formato .txt ou .pdf) contendo
75+
<p>2. É obrigatória a inclusão de um arquivo nomeado "Readme"/"Leiame"/"Leame" (em formato .txt ou .pdf) contendo
7676
informações do conjunto e arquivos de dados. Este arquivo deve descrever o contexto da
7777
pesquisa, metodologia, estrutura dos arquivos, variáveis e instruções de uso, seguindo
7878
as melhores práticas de gestão de dados científicos para assegurar acessibilidade,

cypress/support/commands.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
1-
Cypress.Commands.add('changeAuthorEditPermissionOnPublication', function(username, password, fullName, context, option) {
1+
Cypress.Commands.add('findSubmission', function(tab, title) {
2+
cy.get('#' + tab + '-button').click();
3+
cy.get('.listPanel__itemSubtitle:visible:contains("' + title + '")').first()
4+
.parent().parent().within(() => {
5+
cy.get('.pkpButton:contains("View")').click();
6+
});
7+
});
8+
9+
Cypress.Commands.add('changeAuthorEditPermissionOnPublication', function(username, fullName, context, submissionTitle, option) {
210
var familyName = fullName.split(' ')[1];
311
context = context || 'publicknowledge';
4-
cy.findSubmissionAsEditor(username, password, familyName, context);
12+
cy.login(username, null, context);
13+
cy.findSubmission('active', submissionTitle);
514
cy.contains('span', fullName).parent().siblings('.show_extras').first().click();
615
cy.get('.pkp_linkaction_icon_edit_user:visible').click();
716

@@ -15,14 +24,6 @@ Cypress.Commands.add('changeAuthorEditPermissionOnPublication', function(usernam
1524
cy.logout();
1625
});
1726

18-
Cypress.Commands.add('findSubmission', function(tab, title) {
19-
cy.get('#' + tab + '-button').click();
20-
cy.get('.listPanel__itemSubtitle:visible:contains("' + title + '")').first()
21-
.parent().parent().within(() => {
22-
cy.get('.pkpButton:contains("View")').click();
23-
});
24-
});
25-
2627
Cypress.Commands.add('waitDataStatementTabLoading', function () {
2728
cy.intercept('GET', '**/api/v1/dataverse/dataverseName*').as('getDataverseNameRequest');
2829
cy.wait('@getDataverseNameRequest', {timeout:10000});

cypress/tests/Test0_pluginConfiguration.cy.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ describe('Plugin configuration', function () {
5151
cy.getTinyMceContent(node.attr('id'))
5252
.should('contain', '1. Submit under "Research Data" any files that have been collected');
5353
cy.getTinyMceContent(node.attr('id'))
54-
.should('contain', '2. It is mandatory to include a file named "Readme"');
54+
.should('contain', '2. It is mandatory to include a file named "Readme"/"Leiame"/"Leame"');
5555
cy.getTinyMceContent(node.attr('id'))
5656
.should('contain', '3. The files deposited in "Research Data" will form a dataset');
5757
});

cypress/tests/Test1_submissionWizard.cy.js

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ function advanceNSteps(n) {
99

1010
function assertAdditionalInstructionsDisplay() {
1111
cy.contains('1. Submit under "Research Data" any files that have been collected');
12-
cy.contains('2. It is mandatory to include a file named "Readme"');
12+
cy.contains('2. It is mandatory to include a file named "Readme"/"Leiame"/"Leame"');
1313
cy.contains('For additional guidance on creating the file, consult the suggested references below');
1414
cy.contains('3. The files deposited in "Research Data" will form a dataset');
1515
}
@@ -197,7 +197,7 @@ describe('Dataverse Plugin - Submission wizard features', function () {
197197
cy.fixture('../../plugins/generic/dataverse/cypress/fixtures/README.pdf', 'base64').then((fileContent) => {
198198
cy.get('#datasetFileForm-datasetFile-hiddenFileId').attachFile({
199199
fileContent,
200-
fileName: 'README.pdf',
200+
fileName: 'LEIAME.pdf',
201201
mimeType: 'application/pdf',
202202
encoding: 'base64',
203203
});
@@ -206,12 +206,35 @@ describe('Dataverse Plugin - Submission wizard features', function () {
206206
cy.get('input[name="termsOfUse"]').check();
207207
cy.get('form:visible button:contains("Save")').click();
208208
cy.get('#datasetFiles').contains('a', 'Planilha_de_dados_ÇÕÔÁÀÃ.json');
209+
cy.get('#datasetFiles').contains('a', 'LEIAME.pdf');
210+
211+
advanceNSteps(3);
212+
cy.get('div:contains("It is mandatory to send a README file, in PDF, MD or TXT format, to accompany the research data files")').should('not.exist');
213+
cy.contains('a', 'LEIAME.pdf');
214+
cy.contains('a', 'Planilha_de_dados_ÇÕÔÁÀÃ.json');
215+
216+
cy.get('.pkpSteps__step__label:contains("Upload Files")').click();
217+
cy.get('.listPanel__item:contains(LEIAME.pdf) button:contains(Delete)').click();
218+
cy.get('.modal__panel--dialog button:contains("Delete File")').click();
219+
cy.waitJQuery();
220+
221+
cy.contains('button', 'Add research data').click();
222+
cy.fixture('../../plugins/generic/dataverse/cypress/fixtures/README.pdf', 'base64').then((fileContent) => {
223+
cy.get('#datasetFileForm-datasetFile-hiddenFileId').attachFile({
224+
fileContent,
225+
fileName: 'README.pdf',
226+
mimeType: 'application/pdf',
227+
encoding: 'base64',
228+
});
229+
});
230+
cy.wait(1000);
231+
cy.get('input[name="termsOfUse"]').check();
232+
cy.get('form:visible button:contains("Save")').click();
209233
cy.get('#datasetFiles').contains('a', 'README.pdf');
210234

211235
advanceNSteps(3);
212236
cy.get('div:contains("It is mandatory to send a README file, in PDF, MD or TXT format, to accompany the research data files")').should('not.exist');
213237
cy.contains('a', 'README.pdf');
214-
cy.contains('a', 'Planilha_de_dados_ÇÕÔÁÀÃ.json');
215238
});
216239
it('Adds dataset metadata', function () {
217240
cy.login('eostrom', null, 'publicknowledge');

cypress/tests/Test2_workflowFeatures.cy.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import '../support/commands.js';
22

33
function assertAdditionalInstructionsDisplay() {
44
cy.contains('1. Submit under "Research Data" any files that have been collected');
5-
cy.contains('2. It is mandatory to include a file named "Readme"');
5+
cy.contains('2. It is mandatory to include a file named "Readme"/"Leiame"/"Leame"');
66
cy.contains('For additional guidance on creating the file, consult the suggested references below');
77
cy.contains('3. The files deposited in "Research Data" will form a dataset');
88
}
@@ -24,7 +24,7 @@ describe('Dataverse Plugin - Workflow features', function () {
2424

2525
it('Data statement features are displayed in workflow tab', function () {
2626
if (Cypress.env('contextTitles').en !== 'Public Knowledge Preprint Server') {
27-
cy.changeAuthorEditPermissionOnPublication('dbarnes', null, 'Elinor Ostrom', 'publicknowledge', 'check');
27+
cy.changeAuthorEditPermissionOnPublication('dbarnes', 'Elinor Ostrom', 'publicknowledge', submissionData.title, 'check');
2828
}
2929

3030
cy.login('eostrom', null, 'publicknowledge');
@@ -227,7 +227,7 @@ describe('Dataverse Plugin - Workflow features', function () {
227227
});
228228
it('Author can not perform actions without edit permission granted', function () {
229229
if (Cypress.env('contextTitles').en !== 'Public Knowledge Preprint Server') {
230-
cy.changeAuthorEditPermissionOnPublication('dbarnes', null, 'Elinor Ostrom', 'publicknowledge', 'uncheck');
230+
cy.changeAuthorEditPermissionOnPublication('dbarnes', 'Elinor Ostrom', 'publicknowledge', submissionData.title,'uncheck');
231231
}
232232

233233
cy.login('eostrom', null, 'publicknowledge');

0 commit comments

Comments
 (0)