From 84ec5abb8fcae91c34d1a500529f5600e7d1ffd1 Mon Sep 17 00:00:00 2001 From: johnyma22 Date: Thu, 4 Oct 2012 23:01:33 +0100 Subject: [PATCH] more indentation testing but have hit a brick wall unable to get the second div inside the editor. I tried nth-child, next, find and children but to no avail. Anyone any ideas? --- tests/frontend/specs/button_indentation.js | 78 +++++++++++++++++++++- 1 file changed, 75 insertions(+), 3 deletions(-) diff --git a/tests/frontend/specs/button_indentation.js b/tests/frontend/specs/button_indentation.js index b95e26ca..4f8860dc 100644 --- a/tests/frontend/specs/button_indentation.js +++ b/tests/frontend/specs/button_indentation.js @@ -5,12 +5,13 @@ describe("indentation button", function(){ }); it("makes text indented and outdented", function() { + //get the inner iframe var $inner = testHelper.$getPadInner(); //get the first text element out of the inner iframe var firstTextElement = $inner.find("div").first(); - + //select this text element testHelper.selectText(firstTextElement[0], $inner); @@ -33,14 +34,28 @@ describe("indentation button", function(){ //expect it to be part of a list expect(isLI).to.be(true); + //indent again + $indentButton.click(); + + var newFirstTextElement = $inner.find("div").first(); + + // is there a list-indent class element now? + var firstChild = newFirstTextElement.children(":first"); + var hasListIndent2 = firstChild.hasClass('list-indent2'); + + //expect it to be part of a list + expect(hasListIndent2).to.be(true); + //make sure the text hasn't changed expect(newFirstTextElement.text()).to.eql(firstTextElement.text()); - - //get the unindentation button and click it + // test outdent + + //get the unindentation button and click it twice var $outdentButton = testHelper.$getPadChrome().find(".buttonicon-outdent"); $outdentButton.click(); + $outdentButton.click(); //ace creates a new dom element when you press a button, so just get the first text element again var newFirstTextElement = $inner.find("div").first(); @@ -61,5 +76,62 @@ describe("indentation button", function(){ expect(newFirstTextElement.text()).to.eql(firstTextElement.text()); + // Next test tests multiple line indentation + + //select this text element + testHelper.selectText(firstTextElement[0], $inner); + + //indent twice + $indentButton.click(); + $indentButton.click(); + + //get the first text element out of the inner iframe + var firstTextElement = $inner.find("div").first(); + + //select this text element + testHelper.selectText(firstTextElement[0], $inner); + + /* this test creates the below content, both should have double indentation + line1 + line2 + */ + + firstTextElement.sendkeys('{rightarrow}'); // simulate a keypress of enter + firstTextElement.sendkeys('{enter}'); // simulate a keypress of enter + firstTextElement.sendkeys('line 1'); // simulate writing the first line + firstTextElement.sendkeys('{enter}'); // simulate a keypress of enter + firstTextElement.sendkeys('line 2'); // simulate writing the second line + + //get the second text element out of the inner iframe + var secondTextElement = $inner.find("div").first().children(":nth-child(0)"); // I need help wth this! + console.log(secondTextElement); // not working + + // is there a list-indent class element now? + var firstChild = secondTextElement.children(":first"); + var isUL = firstChild.is('ul'); + + //expect it to be the beginning of a list + expect(isUL).to.be(true); + + var secondChild = secondChild.children(":first"); + var isLI = secondChild.is('li'); + //expect it to be part of a list + expect(isLI).to.be(true); + + //get the first text element out of the inner iframe + var thirdTextElement = $inner.find("div").first(); // I also need help with this.. + + // is there a list-indent class element now? + var firstChild = thirdTextElement.children(":first"); + var isUL = firstChild.is('ul'); + + //expect it to be the beginning of a list + expect(isUL).to.be(true); + + var secondChild = firstChild.children(":first"); + var isLI = secondChild.is('li'); + //expect it to be part of a list + expect(isLI).to.be(true); + }); });