diff options
author | Grégoire Aubert <gregoire.aubert@sonarsource.com> | 2017-08-09 15:28:49 +0200 |
---|---|---|
committer | Grégoire Aubert <gregoire.aubert@sonarsource.com> | 2017-08-14 11:44:44 +0200 |
commit | 70b083b432c50098a01855da9d2afb1ab63c7f62 (patch) | |
tree | ec3dec49ed2d663fce4ffb87b93161db5ef29ffb | |
parent | 423f35f160d8c1b7821ee34ab8589a8d2632c52f (diff) | |
download | sonarqube-70b083b432c50098a01855da9d2afb1ab63c7f62.tar.gz sonarqube-70b083b432c50098a01855da9d2afb1ab63c7f62.zip |
Update measures page IT's
10 files changed, 263 insertions, 263 deletions
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.js b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.js index 84b429306f1..2d9518f1d61 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.js +++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.js @@ -258,35 +258,33 @@ export default class MeasureContent extends React.PureComponent { <div className={this.props.className}> <div className="layout-page-header-panel layout-page-main-header issues-main-header"> <div className="layout-page-header-panel-inner layout-page-main-header-inner"> - <div className="layout-page-main-inner clearfix"> - <Breadcrumbs - backToFirst={view === 'list'} - className="measure-breadcrumbs spacer-right text-ellipsis" - component={component} - handleSelect={this.onOpenComponent} - rootComponent={rootComponent} - /> - {component.key !== rootComponent.key && - isLoggedIn && - <MeasureFavoriteContainer - component={component.key} - className="measure-favorite spacer-right" - />} - {!isFile && - <MeasureViewSelect - className="measure-view-select" - metric={metric} - handleViewChange={this.props.updateView} - view={view} - />} - <PageActions - current={selectedIdx && selectedIdx + 1} - loading={this.props.loading} - isFile={isFile} - paging={this.state.paging} + <Breadcrumbs + backToFirst={view === 'list'} + className="measure-breadcrumbs spacer-right text-ellipsis" + component={component} + handleSelect={this.onOpenComponent} + rootComponent={rootComponent} + /> + {component.key !== rootComponent.key && + isLoggedIn && + <MeasureFavoriteContainer + component={component.key} + className="measure-favorite spacer-right" + />} + {!isFile && + <MeasureViewSelect + className="measure-view-select" + metric={metric} + handleViewChange={this.props.updateView} view={view} - /> - </div> + />} + <PageActions + current={selectedIdx && selectedIdx + 1} + loading={this.props.loading} + isFile={isFile} + paging={this.state.paging} + view={view} + /> </div> </div> {metric == null && <MetricNotFound className="layout-page-main-inner" />} diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.js b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.js index 5ce4d695124..027e0345455 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.js +++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.js @@ -140,27 +140,25 @@ export default class MeasureOverview extends React.PureComponent { <div className={this.props.className}> <div className="layout-page-header-panel layout-page-main-header issues-main-header"> <div className="layout-page-header-panel-inner layout-page-main-header-inner"> - <div className="layout-page-main-inner clearfix"> - <Breadcrumbs - backToFirst={true} - className="measure-breadcrumbs spacer-right text-ellipsis" - component={component} - handleSelect={this.props.updateSelected} - rootComponent={rootComponent} - /> - {component.key !== rootComponent.key && - isLoggedIn && - <MeasureFavoriteContainer - component={component.key} - className="measure-favorite spacer-right" - />} - <PageActions - current={this.state.components.length} - loading={this.props.loading} - isFile={isFile} - paging={this.state.paging} - /> - </div> + <Breadcrumbs + backToFirst={true} + className="measure-breadcrumbs spacer-right text-ellipsis" + component={component} + handleSelect={this.props.updateSelected} + rootComponent={rootComponent} + /> + {component.key !== rootComponent.key && + isLoggedIn && + <MeasureFavoriteContainer + component={component.key} + className="measure-favorite spacer-right" + />} + <PageActions + current={this.state.components.length} + loading={this.props.loading} + isFile={isFile} + paging={this.state.paging} + /> </div> </div> <div className="layout-page-main-inner"> diff --git a/tests/src/test/java/org/sonarqube/pageobjects/Navigation.java b/tests/src/test/java/org/sonarqube/pageobjects/Navigation.java index b71307e1587..a586cb31c47 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/Navigation.java +++ b/tests/src/test/java/org/sonarqube/pageobjects/Navigation.java @@ -31,6 +31,7 @@ import javax.annotation.Nullable; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.html5.WebStorage; +import org.sonarqube.pageobjects.measures.MeasuresPage; import org.sonarqube.tests.Tester; import org.sonarqube.pageobjects.issues.IssuesPage; import org.sonarqube.pageobjects.licenses.LicensesPage; @@ -136,6 +137,12 @@ public class Navigation { return open(url, ProjectActivityPage.class); } + public MeasuresPage openProjectMeasures(String projectKey) { + // TODO encode projectKey + String url = "/component_measures?id=" + projectKey; + return open(url, MeasuresPage.class); + } + public MembersPage openOrganizationMembers(String orgKey) { String url = "/organizations/" + orgKey + "/members"; return open(url, MembersPage.class); diff --git a/tests/src/test/java/org/sonarqube/pageobjects/measures/MeasureContent.java b/tests/src/test/java/org/sonarqube/pageobjects/measures/MeasureContent.java new file mode 100644 index 00000000000..6c8e7381098 --- /dev/null +++ b/tests/src/test/java/org/sonarqube/pageobjects/measures/MeasureContent.java @@ -0,0 +1,63 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonarqube.pageobjects.measures; + +import com.codeborne.selenide.ElementsCollection; +import com.codeborne.selenide.SelenideElement; + +import static com.codeborne.selenide.Condition.exist; +import static com.codeborne.selenide.Condition.text; + +public class MeasureContent { + private final SelenideElement elt; + + public MeasureContent(SelenideElement elt) { + this.elt = elt; + } + + public MeasureContent shouldHaveTitle(String title) { + this.elt.$(".measure-details-header .measure-details-metric").should(exist).shouldHave(text(title)); + return this; + } + + public MeasureContent shouldHaveHeaderValue(String value) { + this.elt.$(".measure-details-header .measure-details-value").should(exist).shouldHave(text(value)); + return this; + } + + public MeasureContent shouldHaveFile(String path) { + this.getFiles().find(text(path)).should(exist); + return this; + } + + public MeasureContent drillDown(String item) { + this.getFiles().find(text(item)).should(exist).find("a").click(); + return this; + } + + public MeasureContent shouldDisplayCode() { + this.elt.$(".source-line-code").should(exist); + return this; + } + + private ElementsCollection getFiles() { + return this.elt.$$(".measure-details-component-row"); + } +} diff --git a/tests/src/test/java/org/sonarqube/pageobjects/measures/MeasuresPage.java b/tests/src/test/java/org/sonarqube/pageobjects/measures/MeasuresPage.java new file mode 100644 index 00000000000..d7fd6845997 --- /dev/null +++ b/tests/src/test/java/org/sonarqube/pageobjects/measures/MeasuresPage.java @@ -0,0 +1,90 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonarqube.pageobjects.measures; +import com.codeborne.selenide.CollectionCondition; +import com.codeborne.selenide.SelenideElement; +import org.openqa.selenium.Keys; + +import static com.codeborne.selenide.Condition.exist; +import static com.codeborne.selenide.Condition.text; +import static com.codeborne.selenide.Selenide.$; + +public class MeasuresPage { + public MeasuresPage() { + $("#component-measures").should(exist); + } + + public MeasuresPage displayBubbleChart(String title) { + SelenideElement bubblechart = $("#component-measures .measure-overview-bubble-chart"); + bubblechart.$(".measure-overview-bubble-chart-title").shouldHave(text(title)); + return this; + } + + public MeasuresPage measureHasValue(String measure, Integer value) { + SelenideElement sidebar = this.getSideBar(); + sidebar.$("#measure-" + measure + "-name").should(exist); + sidebar.$("#measure-" + measure + "-value").should(exist).shouldHave(text(value.toString())); + return this; + } + + public MeasuresPage measureHasLeak(String measure, Integer value) { + SelenideElement sidebar = this.getSideBar(); + sidebar.$("#measure-" + measure + "-name").should(exist); + sidebar.$("#measure-" + measure + "-leak").should(exist).shouldHave(text(value.toString())); + return this; + } + + public MeasuresPage breadcrumbsShouldHave(String item) { + $(".layout-page-header-panel .measure-breadcrumbs").shouldHave(text(item)); + return this; + } + + public MeasuresPage breadcrumbsShouldNotHave(String item) { + $(".layout-page-header-panel .measure-breadcrumbs").shouldNotHave(text(item)); + return this; + } + + public MeasuresPage backShortcut() { + $(".layout-page-header-panel").sendKeys(Keys.LEFT); + return this; + } + + public MeasuresPage switchView(String view) { + SelenideElement select = $(".measure-view-select").should(exist); + select.click(); + select.$(".Select-menu-outer").should(exist) + .$$(".Select-option").shouldHave(CollectionCondition.sizeGreaterThan(1)) + .find(text(view)).should(exist).click(); + return this; + } + + public MeasureContent openMeasureContent(String measure) { + SelenideElement sidebar = this.getSideBar(); + SelenideElement facetItem = sidebar.$("#measure-" + measure + "-name").should(exist); + facetItem.click(); + MeasureContent content = new MeasureContent($("#component-measures .layout-page-main-inner").should(exist)); + content.shouldHaveTitle(facetItem.getText()); + return content; + } + + private SelenideElement getSideBar() { + return $("#component-measures .layout-page-side").should(exist); + } +} diff --git a/tests/src/test/java/org/sonarqube/tests/measure/ProjectMeasuresPageTest.java b/tests/src/test/java/org/sonarqube/tests/measure/ProjectMeasuresPageTest.java index e0acee4fc3c..5ecedb276db 100644 --- a/tests/src/test/java/org/sonarqube/tests/measure/ProjectMeasuresPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/measure/ProjectMeasuresPageTest.java @@ -21,12 +21,19 @@ package org.sonarqube.tests.measure; import com.sonar.orchestrator.Orchestrator; import com.sonar.orchestrator.build.SonarScanner; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Rule; +import org.sonarqube.pageobjects.measures.MeasureContent; +import org.sonarqube.pageobjects.measures.MeasuresPage; import org.sonarqube.tests.Category1Suite; import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.tests.Tester; +import static com.codeborne.selenide.Condition.exist; import static com.codeborne.selenide.Condition.visible; import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.$$; @@ -40,40 +47,78 @@ public class ProjectMeasuresPageTest { @ClassRule public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - @BeforeClass - public static void inspectProject() { + @Rule + public Tester tester = new Tester(orchestrator); + + private static String projectKey = "project-measures-page-test-project"; + + @Before + public void inspectProject() { orchestrator.executeBuild( SonarScanner .create(projectDir("shared/xoo-sample")) - .setProperty("sonar.projectKey", "project-measures-page-test-project") + .setProperty("sonar.projectKey", projectKey) .setProperty("sonar.projectName", "ProjectMeasuresPageTest Project")); // one more time orchestrator.executeBuild( SonarScanner .create(projectDir("shared/xoo-sample")) - .setProperty("sonar.projectKey", "project-measures-page-test-project") + .setProperty("sonar.projectKey", projectKey) .setProperty("sonar.projectName", "ProjectMeasuresPageTest Project")); } @Test public void should_display_measures_page() { - runSelenese(orchestrator, "/measure/ProjectMeasuresPageTest/should_display_measures_page.html"); + MeasuresPage page = tester.openBrowser().openProjectMeasures(projectKey); + page + .displayBubbleChart("Risk") + .measureHasValue("code_smells", 0) + .measureHasLeak("new_code_smells", 0); + page + .openMeasureContent("code_smells") + .shouldHaveFile("src/main/xoo/sample") + .shouldHaveHeaderValue("0"); } @Test public void should_drilldown_on_list_view() { - runSelenese(orchestrator, "/measure/ProjectMeasuresPageTest/should_drilldown_on_list_view.html"); + MeasuresPage page = tester.openBrowser().openProjectMeasures(projectKey); + MeasureContent content = page.openMeasureContent("ncloc"); + content + .drillDown("src/main/xoo/sample/Sample.xoo") + .shouldHaveHeaderValue("13") + .shouldDisplayCode(); + page + .breadcrumbsShouldHave("Sample.xoo") + .backShortcut() + .breadcrumbsShouldNotHave("Sample.xoo"); + content.shouldHaveFile("src/main/xoo/sample/Sample.xoo"); } @Test public void should_drilldown_on_tree_view() { - runSelenese(orchestrator, "/measure/ProjectMeasuresPageTest/should_drilldown_on_tree_view.html"); + MeasuresPage page = tester.openBrowser().openProjectMeasures(projectKey); + MeasureContent content = page.openMeasureContent("ncloc"); + page.switchView("tree"); + content + .shouldHaveFile("src/main/xoo/sample"); + page.breadcrumbsShouldNotHave("src/main/xoo/sample").breadcrumbsShouldNotHave("Sample.xoo"); + content.drillDown("src/main/xoo/sample") + .shouldHaveFile("src/main/xoo/sample/Sample.xoo"); + page.breadcrumbsShouldHave("src/main/xoo/sample").breadcrumbsShouldNotHave("Sample.xoo"); + content.drillDown("src/main/xoo/sample/Sample.xoo").shouldDisplayCode(); + page + .breadcrumbsShouldHave("Sample.xoo") + .backShortcut() + .breadcrumbsShouldHave("src/main/xoo/sample") + .breadcrumbsShouldNotHave("Sample.xoo"); } @Test + @Ignore public void should_redirect_history_to_project_activity() { - Navigation nav = Navigation.create(orchestrator); + Navigation nav = tester.openBrowser(); nav.open("/component_measures/metric/reliability_rating/history?id=project-measures-page-test-project"); assertThat(url()) .contains("/project/activity") @@ -82,11 +127,10 @@ public class ProjectMeasuresPageTest { .contains("custom_metrics=reliability_rating"); } - @Test public void should_show_link_to_history() { - Navigation nav = Navigation.create(orchestrator); - nav.open("/component_measures/metric/reliability_rating/list?id=project-measures-page-test-project"); + Navigation nav = tester.openBrowser(); + nav.open("/component_measures?id=project-measures-page-test-project&metric=reliability_rating"); $(".js-show-history").shouldBe(visible).click(); $("#project-activity").shouldBe(visible); } diff --git a/tests/src/test/java/org/sonarqube/tests/ui/UiTest.java b/tests/src/test/java/org/sonarqube/tests/ui/UiTest.java index ff4b65c0f14..ebb9f9edcc4 100644 --- a/tests/src/test/java/org/sonarqube/tests/ui/UiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/ui/UiTest.java @@ -32,10 +32,12 @@ import org.sonarqube.ws.client.WsResponse; import org.sonarqube.pageobjects.Navigation; import util.ItUtils; +import static com.codeborne.selenide.Condition.exist; import static com.codeborne.selenide.Condition.hasText; import static com.codeborne.selenide.Condition.text; import static com.codeborne.selenide.Condition.visible; import static com.codeborne.selenide.Selenide.$; +import static com.codeborne.selenide.Selenide.$$; import static com.codeborne.selenide.WebDriverRunner.url; import static org.assertj.core.api.Assertions.assertThat; import static util.ItUtils.projectDir; @@ -120,7 +122,7 @@ public class UiTest { // on project issues page assertThat(url()).contains("/project/issues?id=sample&resolved=false&types=CODE_SMELL"); - $("[data-property=\"resolutions\"] .facet.active").shouldBe(visible); + $$(".facet.active").shouldHaveSize(3).find(text("Unresolved")).should(exist); $("#global-navigation").find("a[href=\"/profiles\"]").click(); diff --git a/tests/src/test/resources/measure/ProjectMeasuresPageTest/should_display_measures_page.html b/tests/src/test/resources/measure/ProjectMeasuresPageTest/should_display_measures_page.html deleted file mode 100644 index 4c5a77a9545..00000000000 --- a/tests/src/test/resources/measure/ProjectMeasuresPageTest/should_display_measures_page.html +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_display_measure_drilldown</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/component_measures?id=project-measures-page-test-project</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=measure-code_smells</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>id=measure-code_smells-value</td> - <td>*0*</td> -</tr> -<tr> - <td>assertText</td> - <td>id=measure-new_code_smells-leak</td> - <td>*0*</td> -</tr> -<tr> - <td>click</td> - <td>css=#measure-code_smells > a</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>content</td> - <td>*Code Smells*0*</td> -</tr> -<tr> - <td>waitForText</td> - <td>content</td> - <td>*src/main/xoo/sample*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/tests/src/test/resources/measure/ProjectMeasuresPageTest/should_drilldown_on_list_view.html b/tests/src/test/resources/measure/ProjectMeasuresPageTest/should_drilldown_on_list_view.html deleted file mode 100644 index e68d8b87dfb..00000000000 --- a/tests/src/test/resources/measure/ProjectMeasuresPageTest/should_drilldown_on_list_view.html +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_drilldown_on_list_view</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/component_measures/metric/ncloc/list?id=project-measures-page-test-project</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td>*src/main/xoo/sample/Sample.xoo*</td> -</tr> -<tr> - <td>assertText</td> - <td>id=component-measures-component-measure-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo-ncloc</td> - <td>*13*</td> -</tr> -<tr> - <td>click</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.source-line-code</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.component-measures-breadcrumbs</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=component-measures-breadcrumb-project-measures-page-test-project</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.component-measures-breadcrumbs</td> - <td>*Sample.xoo*13*</td> -</tr> -<tr> - <td>click</td> - <td>id=component-measures-breadcrumb-project-measures-page-test-project</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/tests/src/test/resources/measure/ProjectMeasuresPageTest/should_drilldown_on_tree_view.html b/tests/src/test/resources/measure/ProjectMeasuresPageTest/should_drilldown_on_tree_view.html deleted file mode 100644 index 489c9d93afc..00000000000 --- a/tests/src/test/resources/measure/ProjectMeasuresPageTest/should_drilldown_on_tree_view.html +++ /dev/null @@ -1,84 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_drilldown_on_tree_view</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/component_measures/metric/ncloc/tree?id=project-measures-page-test-project</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample</td> - <td>*src/main/xoo/sample*</td> -</tr> -<tr> - <td>assertText</td> - <td>id=component-measures-component-measure-project-measures-page-test-project:src/main/xoo/sample-ncloc</td> - <td>*13*</td> -</tr> -<tr> - <td>click</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td>*src/main/xoo/sample/Sample.xoo*</td> -</tr> -<tr> - <td>assertText</td> - <td>id=component-measures-component-measure-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo-ncloc</td> - <td>*13*</td> -</tr> -<tr> - <td>assertText</td> - <td>css=.component-measures-breadcrumbs</td> - <td>*ProjectMeasuresPageTest Project*src/main/xoo/sample*13*</td> -</tr> -<tr> - <td>click</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.source-line-code</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.component-measures-breadcrumbs</td> - <td>*ProjectMeasuresPageTest Project*src/main/xoo/sample*13*Sample.xoo*13*</td> -</tr> -<tr> - <td>click</td> - <td>id=component-measures-breadcrumb-project-measures-page-test-project</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> |