//
//  AstroWebUtilsTests.swift
//  Astro
//
//  Created by Liz Cross on 2015-07-14.
//  Copyright (c) 2015 Mobify Research & Development Inc. All rights reserved.
//

import XCTest
@testable import Astro

class AstroWebUtilsTests: AstroTestCase {

    func testAddAstroUserAgent() {
        // Clear out UserAgent key for a clean test environment
        UserDefaults.standard.removeObject(forKey: "UserAgent")

        var defaultUserAgent = ""
        if let currentUserAgent: String = UIWebView().stringByEvaluatingJavaScript(from: "navigator.userAgent") {
            defaultUserAgent = currentUserAgent
        }

        XCTAssertTrue(defaultUserAgent.range(of: ASTRO_USER_AGENT) == nil)

        AstroWebUtils.addAstroUserAgent()

        var astroUserAgent = ""
        if let currentUserAgent: String = UIWebView().stringByEvaluatingJavaScript(from: "navigator.userAgent") {
            astroUserAgent = currentUserAgent
        }

        XCTAssertFalse(astroUserAgent.range(of: ASTRO_USER_AGENT) == nil)
        XCTAssertFalse(astroUserAgent.range(of: defaultUserAgent) == nil)

        AstroWebUtils.addAstroUserAgent()

        var astroUserAgentAfterTwoInitializations = ""
        if let currentUserAgent: String = UIWebView().stringByEvaluatingJavaScript(from: "navigator.userAgent") {
            astroUserAgentAfterTwoInitializations = currentUserAgent
        }

        let rangeOfFirstOccurance = astroUserAgentAfterTwoInitializations.range(of: ASTRO_USER_AGENT)
        let endOfAstroUserAgentAfterTwoInitializations = astroUserAgentAfterTwoInitializations.substring(from: rangeOfFirstOccurance!.upperBound)

        XCTAssertTrue(endOfAstroUserAgentAfterTwoInitializations.range(of: ASTRO_USER_AGENT) == nil)

    }

}
