package com.testerhome.appcrawler.it

import java.net.URL

import io.appium.java_client.android.AndroidDriver
import org.openqa.selenium.WebElement
import org.openqa.selenium.remote.DesiredCapabilities
import org.scalatest._
import scala.collection.JavaConversions._

/**
  * Created by seveniruby on 2017/6/6.
  */
class TestJianShu extends FunSuite with BeforeAndAfterAll with BeforeAndAfterEach with Matchers {

  val capabilities=new DesiredCapabilities()
  capabilities.setCapability("deviceName", "emulator-5554")
  capabilities.setCapability("appPackage", "com.jianshu.haruki")
  capabilities.setCapability("appActivity", "com.baiji.jianshu.account.SplashScreenActivity")
  capabilities.setCapability("unicodeKeyboard", "true")

  var driver=new AndroidDriver[WebElement](new URL("http://127.0.0.1:4723/wd/hub/"), capabilities)

  override def beforeAll(): Unit ={
    capabilities.setCapability("app", "/Users/seveniruby/Downloads/Jianshu-2.3.1-17051515-1495076675.apk")
    driver=new AndroidDriver[WebElement](new URL("http://127.0.0.1:4723/wd/hub/"), capabilities)
    Thread.sleep(3000)
    verbose()
  }

  override def beforeEach(): Unit = {
    capabilities.setCapability("app", "")
    driver=new AndroidDriver[WebElement](new URL("http://127.0.0.1:4723/wd/hub/"), capabilities)
    Thread.sleep(3000)
    verbose()

  }

  def verbose(): Unit ={
    println()
    println(driver.currentActivity())
    println(driver.getPageSource)
  }

  test("绕过登陆"){
    driver.findElementByXPath("//*[@text='跳过']").click()
    driver.findElementById("iv_close").click()
    driver.findElementsByXPath("//*[@text='登录']").size() should be >= 1
  }

  test("错误密码登录"){
    driver.findElementByXPath("//*[@text='跳过']").click()
    driver.findElementByXPath("//*[@text='已有帐户登录']").click()
    driver.findElementByXPath("//*[@text='手机或邮箱']").sendKeys("[email protected]")
    driver.findElementByXPath("//*[@password='true']").sendKeys("wrong")
    driver.findElementByXPath("//*[@text='登录']").click()
    verbose()
    driver.findElementsByXPath("//*[contains(@text, '错误')]").size() should be >= 1
  }

  test("随便看看"){
    driver.findElementByXPath("//*[@text='跳过']").click()
    driver.findElementByXPath("//*[@text='随便看看']").click()
    verbose()
    driver.findElementsByXPath("//*[contains(@resource-id, 'tag_flow_layout')]//*[contains(name(),'TextView')]").foreach(tag => {
      tag.click()
      Thread.sleep(1000)
      driver.findElementsByXPath("//*[@text='关注']").size() should be >=1
      driver.navigate().back()
    })
  }

  override def afterEach(): Unit = {
    driver.quit()
  }
}