-
Notifications
You must be signed in to change notification settings - Fork 912
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #8719 from rundeck/RSE-792
RSE-792 Fix: No Indentation on JSON Resource Model Edit Page
- Loading branch information
Showing
8 changed files
with
191 additions
and
11 deletions.
There are no files selected for viewing
57 changes: 57 additions & 0 deletions
57
functional-test/src/test/groovy/org/rundeck/tests/functional/selenium/AceEditorSpec.groovy
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
package org.rundeck.tests.functional.selenium | ||
|
||
import org.rundeck.tests.functional.selenium.pages.EditNodesFilePage | ||
import org.rundeck.tests.functional.selenium.pages.EditNodesPage | ||
import org.rundeck.tests.functional.selenium.pages.LoginPage | ||
import org.rundeck.tests.functional.selenium.pages.ProjectHomePage | ||
import org.rundeck.tests.functional.selenium.pages.ProjectListPage | ||
import org.rundeck.util.annotations.SeleniumCoreTest | ||
import org.rundeck.util.container.SeleniumBase | ||
|
||
import java.util.stream.Collectors | ||
|
||
@SeleniumCoreTest | ||
class AceEditorSpec extends SeleniumBase{ | ||
|
||
private static def projectName = 'resourcesTest' | ||
private static def jsonFileIndex = 2 | ||
|
||
def setupSpec(){ | ||
setupProjectWithNodes(projectName, "/projects-import/resourcesTest.zip") | ||
} | ||
|
||
def "Edit json file resource model with indented text"(){ | ||
|
||
// 1. Upload a project with a (json) file resource model created | ||
// 2. Attempt to modify the file (Ace Editor rendered into view) | ||
// Asserts the JSON is indented. | ||
|
||
setup: | ||
LoginPage loginPage = page LoginPage | ||
ProjectHomePage projectHomePage = page ProjectHomePage | ||
EditNodesPage editNodesPage = page EditNodesPage | ||
editNodesPage.setProject(projectName) | ||
EditNodesFilePage editNodesFilePage = page EditNodesFilePage | ||
editNodesFilePage.setProject(projectName) | ||
editNodesFilePage.setIndex(jsonFileIndex) | ||
|
||
when: | ||
loginPage.go() | ||
loginPage.login(TEST_USER, TEST_PASS) | ||
page(ProjectListPage).waitUntilPageLoaded() | ||
projectHomePage.goProjectHome(projectName) | ||
editNodesPage.go() | ||
editNodesPage.waitUntilPageLoaded() | ||
editNodesFilePage.go() | ||
editNodesFilePage.waitUntilPageLoaded() | ||
editNodesFilePage.waitForAceToRender() | ||
def linesInAceGutter = editNodesFilePage.aceGutterElement().getText() | ||
List<String> linesAsList = Arrays.stream(linesInAceGutter.split("\\n")) | ||
.collect(Collectors.toList()); | ||
|
||
then: | ||
linesAsList.size() > 1 | ||
|
||
} | ||
|
||
} |
49 changes: 49 additions & 0 deletions
49
...test/src/test/groovy/org/rundeck/tests/functional/selenium/pages/EditNodesFilePage.groovy
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
package org.rundeck.tests.functional.selenium.pages | ||
|
||
import org.openqa.selenium.By | ||
import org.openqa.selenium.WebElement | ||
import org.openqa.selenium.support.ui.ExpectedConditions | ||
import org.openqa.selenium.support.ui.WebDriverWait | ||
import org.rundeck.util.container.SeleniumContext | ||
|
||
import java.time.Duration | ||
|
||
class EditNodesFilePage extends BasePage{ | ||
|
||
static final String PAGE_PATH = "/nodes/source" | ||
static final String editSuffix = "edit" | ||
int index | ||
String project | ||
|
||
By aceEditorGutter = By.className("ace_gutter") | ||
|
||
/** | ||
* Create a new page | ||
* @param context | ||
*/ | ||
EditNodesFilePage(SeleniumContext context) { | ||
super(context) | ||
} | ||
|
||
@Override | ||
String getLoadPath() { | ||
if(!project){ | ||
throw new IllegalStateException("project is not set, cannot load nodes.") | ||
} | ||
if( !index ){ | ||
throw new IllegalStateException("No node index specified, cannot load node file edit page.") | ||
} | ||
return "/project/${project}${PAGE_PATH}/${index}/${editSuffix}" | ||
} | ||
|
||
void waitForAceToRender(){ | ||
new WebDriverWait(driver, Duration.ofSeconds(30)).until( | ||
ExpectedConditions.visibilityOf(aceGutterElement()) | ||
) | ||
} | ||
|
||
WebElement aceGutterElement(){ | ||
el aceEditorGutter | ||
} | ||
|
||
} |
28 changes: 28 additions & 0 deletions
28
...nal-test/src/test/groovy/org/rundeck/tests/functional/selenium/pages/EditNodesPage.groovy
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package org.rundeck.tests.functional.selenium.pages | ||
|
||
import org.openqa.selenium.By | ||
import org.openqa.selenium.WebElement | ||
import org.rundeck.util.container.SeleniumContext | ||
|
||
class EditNodesPage extends BasePage{ | ||
|
||
static final String PAGE_PATH = "/nodes/sources" | ||
String project | ||
|
||
/** | ||
* Create a new page | ||
* @param context | ||
*/ | ||
EditNodesPage(SeleniumContext context) { | ||
super(context) | ||
} | ||
|
||
@Override | ||
String getLoadPath() { | ||
if(!project){ | ||
throw new IllegalStateException("project is not set, cannot load nodes.") | ||
} | ||
return "/project/${project}${PAGE_PATH}" | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
12 changes: 12 additions & 0 deletions
12
functional-test/src/test/resources/resource-model/test-resource.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{ | ||
"test-node": { | ||
"nodename": "test-node", | ||
"customEnv": "test", | ||
"hostname": "http://localhost:4443", | ||
"editUrl": "http://localhost:4443", | ||
"customIdx": "01", | ||
"osFamily": "Linux", | ||
"username": "rundeck", | ||
"tags": "test" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters