package integration;

import org.junit.Before;
import org.junit.Test;

import static com.codeborne.selenide.Condition.*;
import static com.codeborne.selenide.Selectors.*;
import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.$$x;
import static com.codeborne.selenide.Selenide.$x;

public class SelectorsTest extends IntegrationTest {
  @Before
  public void openTestPageWithJQuery() {
    openFile("page_with_selects_without_jquery.html");
  }

  @Test
  public void canFindElementByName() {
    $(byName("domain")).should(exist);
  }

  @Test
  public void canFindElementByXPath() {
    $(byXpath("//h1")).shouldHave(text("Page with selects"));
    $(byXpath("//*[@name='domain']")).shouldBe(visible);
  }

  @Test
  public void canFindElementByLinkText() {
    $(byLinkText("Options with 'apostrophes' and \"quotes\"")).shouldHave(text("Options with 'apostrophes' and \"quotes\""));
  }

  @Test
  public void canFindElementByPartialLinkText() {
    $(byPartialLinkText("'apostrophes")).shouldHave(text("Options with 'apostrophes' and \"quotes\""));
    $(byPartialLinkText("quotes\"")).shouldHave(text("Options with 'apostrophes' and \"quotes\""));
  }

  @Test
  public void canFindElementById() {
    $(byId("status")).shouldHave(text("Username:"));
  }

  @Test
  public void canFindSelenideElementByXpath() {
    $x("//h1").shouldHave(text("Page with selects"));
    $x("//*[id='status']").shouldHave(text("Username:"));
    $x("//*[@name='domain']").shouldBe(visible);
  }

  @Test
  public void canFindElementsCollectionByXpath() {
    $$x("//h1").get(0).shouldHave(text("Page with selects"));
    $$x("//*[id='status']").get(0).shouldHave(text("Username:"));
    $$x("//*[@name='domain']").get(0).shouldBe(visible);
  }
}

@@ -1408,32 +1408,33 @@
 ));%0A    $x(%22//*%5B
+@
 id='status'%5D%22).s
@@ -1651,16 +1651,17 @@
 $x(%22//*%5B
+@
 id='stat

fix locator for xpath