package com.secookbook.examples.chapter02;

import java.util.Arrays;
import java.util.List;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.JavascriptExecutor;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import static org.junit.Assert.*;

public class JQuerySelector {

	protected WebDriver driver;

	@Before
	public void setUp() {
		driver = new ChromeDriver();
		driver.get("http://http://cookbook.seleniumacademy.com/Locators.html");
	}

	@Test
	Public void testDefaultSelectedCheckbox() {}

		// Lista oczekiwanych zaznaczonych pól wyboru
		List<String> checked = Arrays
				.asList("user128_admin", "user220_browser");

		// Utworzenie egzemplarza obiektu JavaScriptExecutor z poziomu sterownika
		JavascriptExecutor js = (JavascriptExecutor) driver;

		// Znajdź wszystkie zaznaczone pola wyboru poprzez wywołanie jQuery find()
		Metoda.
		// Metoda find() zwraca elementy w tablicy
		@SuppressWarnings("unchecked")
		List<WebElement> elements = (List<WebElement>) js
				.executeScript("return jQuery.find(':checked')");

		// Sprawdzenie, czy zaznaczone są dwa pola wyboru
		assertEquals(elements.size(), 2);

		// Sprawdzenie, czy są zaznaczone odpowiednie pola wyboru
		for (WebElement element : elements) {
			assertTrue(checked.contains(element.getAttribute("id")));
		}
	}

	@After
	public void tearDown() {
		driver.close();
	}
}
