package paradigm

import scala.concurrent.duration._

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import io.gatling.jdbc.Predef._

class Simulation1 extends Simulation {

	val httpProtocol = http
		.baseUrl("https://staging-www.paradigmagency.com")
		.inferHtmlResources()
		.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
		.acceptEncodingHeader("gzip, deflate")
		.acceptLanguageHeader("en-US,en;q=0.5")
		.userAgentHeader("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0")

	val headers_0 = Map("Accept-Encoding" -> "gzip, deflate",	"Upgrade-Insecure-Requests" -> "1")
	val headers_1 = Map("Accept" -> "image/webp,*/*")
	val headers_5 = Map("Upgrade-Insecure-Requests" -> "1")
	val main_url = "staging-www.paradigmagency.com"

	// val scn = scenario("Simulation1")
	object GeneralBrowse {
		val generalBrowse1 = exec(http("request_0")
				.get("http://" + main_url + "/")
				.headers(headers_0)
				.resources(http("request_1")
				.get("/img/icon-arrow.png")
				.headers(headers_1),
							http("request_2")
				.get("/img/icon-triangle.png")
				.headers(headers_1),
							http("request_3")
				.get("/apple-touch-icon.png")
				.headers(headers_1),
							http("request_4")
				.get("/favicon.ico")
				.headers(headers_1)))
			.pause(9)
			.exec(http("request_5")
				.get("/contact/los-angeles")
				.headers(headers_5)
				.resources(http("request_6")
				.get("/contact/los-angeles/apple-touch-icon.png")
				.headers(headers_1)
				.check(status.is(404))))
			.pause(2)
			.exec(http("request_7")
				.get("/music")
				.headers(headers_5)
				.resources(http("request_8")
				.get("/music/apple-touch-icon.png")
				.headers(headers_1)
				.check(status.is(404))))
			.pause(1)
			.exec(http("request_9")
				.get("/music/1975")
				.headers(headers_5)
				.resources(http("request_10")
				.get("/music/1975/apple-touch-icon.png")
				.headers(headers_1)
				.check(status.is(404))))
			.pause(3)
			.exec(http("request_11")
				.get("/music/")
				.headers(headers_5))
			.pause(5)
			.exec(http("request_12")
				.get("/music/?search=bon")
				.headers(headers_5))
			.pause(2)
			.exec(http("request_13")
				.get("/music/bon-iver")
				.headers(headers_5)
				.resources(http("request_14")
				.get("/music/bon-iver/apple-touch-icon.png")
				.headers(headers_1)
				.check(status.is(404))))
			.pause(9)
			.exec(http("request_15")
				.get("/corporate-private-bookings")
				.headers(headers_5)
				.resources(http("request_16")
				.get("/corporate-private-bookings/apple-touch-icon.png")
				.headers(headers_1)
				.check(status.is(404))))
			.pause(3)
			.exec(http("request_17")
				.get("/film-and-tv")
				.headers(headers_5)
				.resources(http("request_18")
				.get("/film-and-tv/apple-touch-icon.png")
				.headers(headers_1)
				.check(status.is(404))))
			.pause(2)
			.exec(http("request_19")
				.get("/publishing")
				.headers(headers_5)
				.resources(http("request_20")
				.get("/publishing/apple-touch-icon.png")
				.headers(headers_1)
				.check(status.is(404))))
			.pause(2)
			.exec(http("request_21")
				.get("/publishing/our-books")
				.headers(headers_5))
			.pause(2)
			.exec(http("request_22")
				.get("/publishing/about")
				.headers(headers_5)
				.resources(http("request_23")
				.get("/publishing/about/apple-touch-icon.png")
				.headers(headers_1)
				.check(status.is(404))))
			.pause(4)
			.exec(http("request_24")
				.get("/careers")
				.headers(headers_5)
				.resources(http("request_25")
				.get("/careers/apple-touch-icon.png")
				.headers(headers_1)
				.check(status.is(404))))
			.pause(1)
			.exec(http("request_26")
				.get("/careers/?region=nashville")
				.headers(headers_5))
	}


	val scn = scenario("Simulation1").exec(GeneralBrowse.generalBrowse1)

	setUp(scn.inject(rampUsers(50)).protocols(httpProtocol))
}