diff --git a/cypress/test05-blox-editor.spec.js b/cypress/test05-blox-editor.spec.js new file mode 100644 index 0000000..6c41a69 --- /dev/null +++ b/cypress/test05-blox-editor.spec.js @@ -0,0 +1,183 @@ +describe('Blox Editor', function() +{ + before(function () + { + cy.visit('/tm/login') + cy.url().should('include','/tm/login') + + cy.get('input[name="username"]').type('trendschau') + cy.get('input[name="password"]').type('password') + + cy.get('form').submit() + cy.url().should('include','/tm/content') + cy.getCookie('typemill-session').should('exist') + + cy.visit('/tm/content/visual') + cy.url().should('include','/tm\/content\/visual') + }) + + beforeEach(function () + { + Cypress.Cookies.preserveOnce('typemill-session') + }) + + it('creates new page', function() + { + // click on add element + cy.get('.addNaviItem > a').eq(0).click() + + /* Check dublicates cannot be made */ + + /* Check new page can be created */ + cy.get('.addNaviForm').within(($naviform) =>{ + + /* add Testpage into input */ + cy.get('input') + .clear() + .type('Testpage') + .should('have.value', 'Testpage') + + cy.get('.b-left').click() + }) + + /* get Navilist */ + cy.get('.navi-list') + .should('contain', 'Testpage') + .eq(2).find('a').should(($a) => { + expect($a).to.have.length(5) + expect($a[4].href).to.include('/welcome\/testpage') + }) + }) + + it('edits default content', function() + { + cy.visit('/tm/content/visual/welcome/testpage') + cy.url().should('include','/tm\/content\/visual\/welcome\/testpage') + + cy.get('#blox').within(($blox) => { + + /* Change Title */ + cy.get('#blox-0').click() + cy.get("input") + .clear() + .type("This is my Testpage") + + cy.get(".edit").click() + cy.get('#blox-0').should("contain", "This is my Testpage") + + /* Change Text */ + cy.get('#blox-1').click() + cy.get("textarea") + .clear() + .type("This is the new paragraph for the first line with some text.") + + cy.get(".edit").click() + cy.get('#blox-1').should("contain", "new paragraph") + + }) + }) + + it('edits table', function() + { + cy.get('#blox').within(($blox) => { + /* Get Format Bar */ + cy.get('.format-bar').within(($formats) => { + + /* Edit Table */ + cy.get("button").eq(4).click() + cy.get("table").within(($table) => { + + /* edit table head */ + cy.get("tr").eq(1).within(($row) => { + cy.get("th").eq(1).click() + .clear() + .type("first Headline") + cy.get("th").eq(2).click() + .clear() + .type("Second Headline") + }) + + /* edit first content row */ + cy.get("tr").eq(2).within(($row) => { + cy.get("td").eq(1).click() + .clear() + .type("Some") + cy.get("td").eq(2).click() + .clear() + .type("More") + }) + + /* edit second content row */ + cy.get("tr").eq(3).within(($row) => { + cy.get("td").eq(1).click() + .clear() + .type("Beautiful") + cy.get("td").eq(2).click() + .clear() + .type("Content") + }) + + /* add new column on the right */ + cy.get("tr").eq(0).within(($row) => { + cy.get("td").eq(2).click() + cy.get(".actionline").eq(0).click() + }) + }) + + cy.get("table").within(($table) => { + + /* edit second new column head */ + cy.get("tr").eq(1).within(($row) => { + cy.get("th").eq(3).click() + .clear() + .type("New Head") + }) + + /* edit second new column head */ + cy.get("tr").eq(2).within(($row) => { + cy.get("td").eq(3).click() + .clear() + .type("With") + }) + + /* edit second new column head */ + cy.get("tr").eq(3).within(($row) => { + cy.get("td").eq(3).click() + .clear() + .type("new Content") + }) + }) + + /* save table */ + cy.get(".edit").click() + + }) + + cy.get('#blox-2').should("contain", "Beautiful").click() + + cy.get('.editactive').within(($activeblock) => { + cy.get('.component').should("contain", "Beautiful") + }) + + }) + }) + + it('Deletes new page', function() + { + cy.visit('/tm/content/visual/welcome/testpage') + cy.url().should('include','/tm\/content\/visual\/welcome\/testpage') + + cy.get('.danger').click() + + cy.get('#modalWindow').within(($modal) => { + cy.get('button').click() + }) + + cy.visit('/tm/content/visual/welcome') + cy.get('.navi-list') + .not('contain', 'Testpage') + .eq(2).find('a').should(($a) => { + expect($a).to.have.length(4) + }) + }) +}) \ No newline at end of file diff --git a/system/Settings.php b/system/Settings.php index 45df14d..852a9bd 100644 --- a/system/Settings.php +++ b/system/Settings.php @@ -128,7 +128,11 @@ class Settings $theme_language_file = $language . '.yaml'; if (file_exists($theme_language_folder . $theme_language_file)) { - $theme_labels = $yaml->getYaml($theme_language_folder, $theme_language_file); + $this_theme_labels = $yaml->getYaml($theme_language_folder, $theme_language_file); + if(is_array($this_theme_labels)) + { + $theme_labels = $this_theme_labels; + } } # loads the plugins strings of the set language @@ -143,20 +147,20 @@ class Settings if (file_exists($plugin_language_folder . $plugin_language_file)) { - $plugin_labels[$name] = $yaml->getYaml($plugin_language_folder, $plugin_language_file); + $this_plugin_labels = $yaml->getYaml($plugin_language_folder, $plugin_language_file); + if(is_array($this_plugin_labels)) + { + $plugin_labels[$name] = $this_plugin_labels; + } } } + foreach($plugin_labels as $key => $value) { $plugins_labels = array_merge($plugins_labels, $value); } } - - # Combines arrays of system languages, themes and plugins - $labels = array_merge($system_labels, $theme_labels, $plugins_labels); - - return $labels; - } + } public function whichLanguage() {