using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;

namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
        static IWebDriver _driverGC;

        [AssemblyInitialize]
        public static void Setup(TestContext context)
        {
            _driverGC = new ChromeDriver();
        }

        [AssemblyCleanup]
        public static void Cleanup()
        {
            // 다음의 코드를 수행하면,
            // 드라이버 프로세스(chromedriver.exe)의 종료와 함께
            // 테스트를 수행한 윈도우도 함께 종료됨
            // 즉, 결과를 볼 수 없음.

            _driverGC.Dispose();
        }

        [TestMethod]
        public void TestChromeDriver()
        {
            TestSearch(_driverGC);
        }

        void TestSearch(IWebDriver driver)
        {
            driver.Navigate().GoToUrl("http://www.google.com/");
            driver.FindElement(By.Id("lst-ib"))
                .SendKeys("정성태");
            driver.FindElement(By.Id("lst-ib"))
                .SendKeys(Keys.Enter);

            bool found = false;

            foreach (var elem in driver.FindElements(By.TagName("a")))
            {
                string url = elem.GetAttribute("href");
                
                if (string.IsNullOrEmpty(url) == true)
                {
                    continue;
                }

                found = url.IndexOf("https://www.sysnet.pe.kr") != -1;
                if (found == true)
                {
                    break;
                }
            }

            Assert.IsTrue(found);
        }
    }
}
