com.atlassian.confluence.pageobjects.component.editor
Class EditorContent

java.lang.Object
  extended by com.atlassian.confluence.pageobjects.component.editor.EditorContent
Direct Known Subclasses:
CommentsSection.NewComment

public class EditorContent
extends java.lang.Object


Field Summary
protected  com.atlassian.pageobjects.PageBinder binder
           
protected  org.openqa.selenium.JavascriptExecutor client
           
protected  org.openqa.selenium.WebDriver driver
           
protected  ConfluenceFrameExecutor execute
           
protected  com.atlassian.pageobjects.elements.PageElementFinder page
           
protected  com.atlassian.pageobjects.elements.timeout.Timeouts timeouts
           
 
Constructor Summary
EditorContent()
           
 
Method Summary
 EditorAutocompleteMacro autocompleteMacro(java.lang.String content)
           
 EditorContent clear()
           
 MacroForm clickEditInlineMacro(java.lang.String macroName)
          Click on the macro, than wait for the popup menu to appear and click edit
 void clickInContent(org.openqa.selenium.By by)
           
 MacroForm doubleClickEditInlineMacro(java.lang.String macroName)
          Double click on the macro to trigger edit mode
 EditorContent focus()
           
 java.lang.String getClassNameOfCurrentCursor()
           
 com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.String> getCurrentSearchMatchText()
           
 java.lang.String getCurrentSelectionText()
          Returns the text of the current editor selection.
 com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.String> getCurrentSelectionTextTimed()
          Returns a timed query for getting the current editor selection.
 java.lang.String getHtml()
          Deprecated. Since 5.4 use getTimedHtml()
 RenderedContent getRenderedContent()
          Returns a RenderedContent object which lets you easily access elements in the editor iframe without having to manually switch frames.
 com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.String> getTimedHtml()
           
 com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.Boolean> hasInlineMacro(java.lang.String macroName, java.util.List<java.lang.String> macroParameters)
          Check if inline macro is existed on editor panel or not
 com.atlassian.pageobjects.elements.query.TimedCondition hasLayout(PageLayout2Toolbar.PageLayoutSectionType sectionType)
           
 com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.Boolean> hasPageLinkWithExplicitSpaceKey(java.lang.String spaceKey, java.lang.String pageTitle)
           
 com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.Boolean> isContentVisible()
           
 com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.Boolean> isElementPresentInEditorContentTimed(org.openqa.selenium.By selection)
          Returns if certain selection is matched on the editor content
 com.atlassian.pageobjects.elements.query.TimedCondition isVisble(org.openqa.selenium.By by)
           
 java.util.List<MacroPlaceholder> macroPlaceholderFor(java.lang.String macroName)
           
 MentionsMenu mentionsAutocomplete(java.lang.String content)
           
 void placeCursor(java.lang.String selector, int position)
          Positions the cursor at the specified position in the first matched element for the provided CSS selector.
 void placeCursorAtEnd(java.lang.String selector)
          Positions the cursor at the end of the first matched element for the provided CSS selector.
 void placeCursorAtStart(java.lang.String selector)
          Positions the cursor at the start of the first matched element for the provided CSS selector.
 void putCursorAtEndOfFirstElementWithSelector(java.lang.String selector)
          Place the cursor at the end of the first element matching the given selector.
 void putCursorAtStartOfElementWithSelectorAndIndex(java.lang.String selector, int elementIndex)
          Place the cursor at the start of the element matching the given selector and index.
 void putCursorAtStartOfFirstElementWithSelector(java.lang.String selector)
          Place the cursor at the start of the first element matching the given selector.
 void redo()
          Execute Redo command in editor
 void replaceCurrentSelectionChildContent(java.lang.String text)
           
 void replaceCurrentSelectionChildContentWithHtml(java.lang.String html)
           
 void replaceCurrentSelectionText(java.lang.String text)
          Replaces the text of the current selection with the given text.
 void selectElementWithSelectorAndIndex(java.lang.String selector, int elementIndex)
           
 void selectFirstElementWithSelector(java.lang.String selector)
          Select the first element matching the given selector.
 void selectFirstParagraph()
           
 void sendKeys(java.lang.String keys)
           
 EditorContent setContent(java.lang.String content)
           
 void setContentInColumn(int column, java.lang.String content)
           
 void setContentViaJs(java.lang.String content)
          This sets the content of the editor using the TinyMCE api.
 EditorContent type(java.lang.String content)
          Type content in the editor.
protected  void typeIn(com.atlassian.pageobjects.elements.PageElement element, java.lang.String content)
          Currently uses sendKeys to the given element to type.
 void typeInColumn(int column, java.lang.String content)
          Type content in the given column index.
 EditorContent typeWithoutLosingFocus(java.lang.CharSequence... content)
          Type content in the editor and do not lose focus
 void undo()
          Execute Undo command in editor
 void waitForInlineMacro(java.lang.String macroName)
          Wait for a macro without a body to be rendered.
 void waitForInlineMacroWithDefaultParameter(java.lang.String macroName, java.lang.String defaultParameter)
          Wait for a macro with a default parameter to be rendered.
 void waitForInlineMacroWithParameters(java.lang.String macroName, java.lang.String parameters)
          Wait for a macro with parameters to be rendered.
 void waitForMacroBody(java.lang.String macroName, java.lang.String body)
          Wait for a macro with a body to be rendered
 void waitForMacroBodyInColumn(int column, java.lang.String macroName)
          Wait for a macro with a body to be rendered inside a column
 void waitForTextContent(java.lang.String content)
          Waits until the given text is present in the editor content.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

execute

@Inject
protected ConfluenceFrameExecutor execute

binder

@Inject
protected com.atlassian.pageobjects.PageBinder binder

driver

@Inject
protected org.openqa.selenium.WebDriver driver

client

@Inject
protected org.openqa.selenium.JavascriptExecutor client

page

@Inject
protected com.atlassian.pageobjects.elements.PageElementFinder page

timeouts

@Inject
protected com.atlassian.pageobjects.elements.timeout.Timeouts timeouts
Constructor Detail

EditorContent

public EditorContent()
Method Detail

getRenderedContent

public RenderedContent getRenderedContent()
Returns a RenderedContent object which lets you easily access elements in the editor iframe without having to manually switch frames.


isContentVisible

public com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.Boolean> isContentVisible()

setContent

public EditorContent setContent(java.lang.String content)

setContentViaJs

public void setContentViaJs(java.lang.String content)
This sets the content of the editor using the TinyMCE api. It does not fire the correct key events and does not wait for the content to be present either. Use this method with care.

Parameters:
content - html content to be set in the editor

clear

public EditorContent clear()

typeWithoutLosingFocus

public EditorContent typeWithoutLosingFocus(java.lang.CharSequence... content)
Type content in the editor and do not lose focus


focus

public EditorContent focus()

type

public EditorContent type(java.lang.String content)
Type content in the editor. It assumes that no page layout has been applied.


typeInColumn

public void typeInColumn(int column,
                         java.lang.String content)
Type content in the given column index. It assumes that a column page layout has been applied. Note the column index is 1-based.


setContentInColumn

public void setContentInColumn(int column,
                               java.lang.String content)

clickEditInlineMacro

public MacroForm clickEditInlineMacro(java.lang.String macroName)
Click on the macro, than wait for the popup menu to appear and click edit

Parameters:
macroName - The name of the macro to wait for

doubleClickEditInlineMacro

public MacroForm doubleClickEditInlineMacro(java.lang.String macroName)
Double click on the macro to trigger edit mode

Parameters:
macroName - The name of the macro to wait for

waitForInlineMacro

public void waitForInlineMacro(java.lang.String macroName)
Wait for a macro without a body to be rendered.

Parameters:
macroName - The name of the macro to wait for

waitForInlineMacroWithDefaultParameter

public void waitForInlineMacroWithDefaultParameter(java.lang.String macroName,
                                                   java.lang.String defaultParameter)
Wait for a macro with a default parameter to be rendered.

Parameters:
macroName -
defaultParameter -

waitForInlineMacroWithParameters

public void waitForInlineMacroWithParameters(java.lang.String macroName,
                                             java.lang.String parameters)
Wait for a macro with parameters to be rendered.

Parameters:
macroName -
parameters -

waitForMacroBodyInColumn

public void waitForMacroBodyInColumn(int column,
                                     java.lang.String macroName)
Wait for a macro with a body to be rendered inside a column

Parameters:
column - The index of the column (1-based).
macroName - The name of the macro to wait for

waitForMacroBody

public void waitForMacroBody(java.lang.String macroName,
                             java.lang.String body)
Wait for a macro with a body to be rendered

Parameters:
macroName -
body -

waitForTextContent

public void waitForTextContent(java.lang.String content)
Waits until the given text is present in the editor content.


sendKeys

public void sendKeys(java.lang.String keys)

typeIn

protected void typeIn(com.atlassian.pageobjects.elements.PageElement element,
                      java.lang.String content)
Currently uses sendKeys to the given element to type. This needs to be rewritten so it works for all the browsers.


getHtml

@Deprecated
public java.lang.String getHtml()
Deprecated. Since 5.4 use getTimedHtml()

Returns the current content of the Editor as HTML.


getTimedHtml

public com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.String> getTimedHtml()

selectFirstParagraph

public void selectFirstParagraph()

selectFirstElementWithSelector

public void selectFirstElementWithSelector(java.lang.String selector)
Select the first element matching the given selector.


selectElementWithSelectorAndIndex

public void selectElementWithSelectorAndIndex(java.lang.String selector,
                                              int elementIndex)

placeCursorAtStart

public void placeCursorAtStart(java.lang.String selector)
Positions the cursor at the start of the first matched element for the provided CSS selector.


placeCursorAtEnd

public void placeCursorAtEnd(java.lang.String selector)
Positions the cursor at the end of the first matched element for the provided CSS selector.


placeCursor

public void placeCursor(java.lang.String selector,
                        int position)
Positions the cursor at the specified position in the first matched element for the provided CSS selector. Doesn't work for IE very well.


putCursorAtStartOfElementWithSelectorAndIndex

public void putCursorAtStartOfElementWithSelectorAndIndex(java.lang.String selector,
                                                          int elementIndex)
Place the cursor at the start of the element matching the given selector and index. Seems to work in Firefox & IE, although the moxiecode docs indicate that the 'true' second parameter doesn't do anything in IE. If this method turns out to be consistent we could refactor putCursorAtStartOfFirstElementWithSelector(String) into it.

Parameters:
selector - see tiny_mce_src.DOMUtils.select
elementIndex - index of matched element to select, 0-indexed

putCursorAtStartOfFirstElementWithSelector

public void putCursorAtStartOfFirstElementWithSelector(java.lang.String selector)
Place the cursor at the start of the first element matching the given selector.

Parameters:
selector - see tiny_mce_src.DOMUtils.select

putCursorAtEndOfFirstElementWithSelector

public void putCursorAtEndOfFirstElementWithSelector(java.lang.String selector)
Place the cursor at the end of the first element matching the given selector.

Parameters:
selector - see tiny_mce_src.DOMUtils.select

getClassNameOfCurrentCursor

public java.lang.String getClassNameOfCurrentCursor()

getCurrentSelectionText

public java.lang.String getCurrentSelectionText()
Returns the text of the current editor selection.


getCurrentSelectionTextTimed

public com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.String> getCurrentSelectionTextTimed()
Returns a timed query for getting the current editor selection.


isElementPresentInEditorContentTimed

public com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.Boolean> isElementPresentInEditorContentTimed(org.openqa.selenium.By selection)
Returns if certain selection is matched on the editor content


replaceCurrentSelectionText

public void replaceCurrentSelectionText(java.lang.String text)
Replaces the text of the current selection with the given text.

Parameters:
text - the text to replace the current selection with

replaceCurrentSelectionChildContent

public void replaceCurrentSelectionChildContent(java.lang.String text)

replaceCurrentSelectionChildContentWithHtml

public void replaceCurrentSelectionChildContentWithHtml(java.lang.String html)

macroPlaceholderFor

public java.util.List<MacroPlaceholder> macroPlaceholderFor(java.lang.String macroName)

getCurrentSearchMatchText

public com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.String> getCurrentSearchMatchText()

clickInContent

public void clickInContent(org.openqa.selenium.By by)

isVisble

public com.atlassian.pageobjects.elements.query.TimedCondition isVisble(org.openqa.selenium.By by)

hasLayout

public com.atlassian.pageobjects.elements.query.TimedCondition hasLayout(PageLayout2Toolbar.PageLayoutSectionType sectionType)

autocompleteMacro

public EditorAutocompleteMacro autocompleteMacro(java.lang.String content)

mentionsAutocomplete

public MentionsMenu mentionsAutocomplete(java.lang.String content)

hasInlineMacro

public com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.Boolean> hasInlineMacro(java.lang.String macroName,
                                                                                             java.util.List<java.lang.String> macroParameters)
Check if inline macro is existed on editor panel or not

Parameters:
macroName -
macroParameters -
Returns:

hasPageLinkWithExplicitSpaceKey

public com.atlassian.pageobjects.elements.query.TimedQuery<java.lang.Boolean> hasPageLinkWithExplicitSpaceKey(java.lang.String spaceKey,
                                                                                                              java.lang.String pageTitle)

undo

public void undo()
Execute Undo command in editor


redo

public void redo()
Execute Redo command in editor



Copyright © 2003-2014 Atlassian. All Rights Reserved.