2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021 Nordix Foundation
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 * SPDX-License-Identifier: Apache-2.0
17 * ============LICENSE_END=========================================================
20 package org.onap.sdc.frontend.ci.tests.pages;
22 import static org.hamcrest.MatcherAssert.assertThat;
23 import lombok.AllArgsConstructor;
25 import org.hamcrest.core.Is;
26 import org.openqa.selenium.By;
27 import org.openqa.selenium.WebDriver;
28 import org.openqa.selenium.WebElement;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
32 public class VlmOverviewPage extends AbstractPageObject {
34 private static final Logger LOGGER = LoggerFactory.getLogger(VlmOverviewPage.class);
35 private static final String DIV_CLASS_XPATH_FORMAT = "//div[@class='%s']";
36 private static final String DIV_DATA_TEST_ID_XPATH_FORMAT = "//div[@data-test-id='%s']";
37 private final VlmSubmitModal vlmSubmitModal;
38 private WebElement wrappingElement;
40 public VlmOverviewPage(final WebDriver webDriver,
41 final VlmSubmitModal vlmSubmitModal) {
43 this.vlmSubmitModal = vlmSubmitModal;
44 timeoutInSeconds = 10;
48 public void isLoaded() {
49 wrappingElement = getWrappingElement();
52 public void overviewScreenIsLoaded() {
53 final String overviewPageXpath = String
54 .format("%s%s", VlmOverviewPage.XpathSelector.PAGE_MAIN_DIV.getXpath(), XpathSelector.OVERVIEW_PAGE.getXpath());
55 waitForElementVisibility(By.xpath(overviewPageXpath));
56 final WebElement selectedNavBarGroupItem =
57 findSubElement(wrappingElement, XpathSelector.SELECTED_NAV_BAR_GROUP_ITEM.getXpath());
58 final String selectedNavBarGroupItemTestId = selectedNavBarGroupItem.getAttribute("data-test-id");
59 assertThat("Overview page should be selected", selectedNavBarGroupItemTestId,
60 Is.is(XpathSelector.NAV_BAR_GROUP_ITEM_OVERVIEW.getId()));
63 public String getVendorName() {
64 return wrappingElement.findElement(By.xpath(XpathSelector.NAV_BAR_GROUP_NAME_XPATH.getXpath())).getText();
67 public void submit() {
68 findSubElement(wrappingElement, XpathSelector.BNT_SUBMIT.getXpath()).click();
69 vlmSubmitModal.isLoaded();
70 vlmSubmitModal.confirmSuccess();
73 public WebElement getWrappingElement() {
74 LOGGER.debug("Finding element with xpath '{}'", XpathSelector.PAGE_MAIN_DIV.getXpath());
75 return waitForElementVisibility(XpathSelector.PAGE_MAIN_DIV.getXpath());
79 * Enum that contains identifiers and xpath expressions to elements related to the enclosing page object.
82 private enum XpathSelector {
83 PAGE_MAIN_DIV("software-product-view", DIV_CLASS_XPATH_FORMAT),
84 NAV_BAR_GROUP_ITEM_OVERVIEW("navbar-group-item-LICENSE_MODEL_OVERVIEW", DIV_CLASS_XPATH_FORMAT),
85 BNT_SUBMIT("vc-submit-btn", DIV_DATA_TEST_ID_XPATH_FORMAT),
86 NAV_BAR_GROUP_NAME_XPATH("navbar-group-name", DIV_DATA_TEST_ID_XPATH_FORMAT),
87 SELECTED_NAV_BAR_GROUP_ITEM("navigation-group-item-name selected", DIV_CLASS_XPATH_FORMAT),
88 OVERVIEW_PAGE("license-model-overview", DIV_CLASS_XPATH_FORMAT);
91 private final String id;
92 private final String xpathFormat;
94 public String getXpath() {
95 return String.format(xpathFormat, id);