Examples/_TestDependencies.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

Function Get-DefaultParams() {
    if ($null -eq $Global:DefaultBrowser) { $Global:DefaultBrowser = 'Firefox' }
    if ($null -eq $env:SITE_URL) { $env:SITE_URL = 'http://tailspin-spacegame-web.azurewebsites.net' }
    if ($null -eq $Global:HeadlessOnly) { $Global:HeadlessOnly = $False }
}
Get-DefaultParams


Function Get-TestCasesSettings() {
    $HeadlessState = if ($Global:HeadlessOnly) { 'Headless' } else { 'Maximized' }
    return   @{
        'NewEdge'          = @{ 
            DefaultOptions = @{State = $HeadlessState }
            PrivateOptions = @{
                PrivateBrowsing = $true
                State           = $HeadlessState
            }
            # InPrivateLabel = 'InPrivate'
        } # broken after build 79 of web driver#>
        'Chrome'           = @{ 
            PrivateOptions  = @{
                PrivateBrowsing = $true
                State           = $HeadlessState
            }
            DefaultOptions  = @{State = $HeadlessState }
            HeadlessOptions = @{State = 'Headless' }
        }
        'Firefox'          = @{ 
            PrivateOptions  = @{
                PrivateBrowsing = $true
                State           = $HeadlessState
            }
            DefaultOptions  = @{State = $HeadlessState }
            HeadlessOptions = @{State = 'Headless' }
        }
        'MSEdge'           = @{ 
            DefaultOptions = @{State = $HeadlessState }
            PrivateOptions = @{PrivateBrowsing = $true }
        }
        'InternetExplorer' = @{ 
            DefaultOptions = @{ImplicitWait = 30 }
            PrivateOptions = @{ImplicitWait = 30 }
        }
    }
}

function Build-StringFromHash {
    param ($Hash)
    $(foreach ($k in $Hash.Keys) { "$K`:$($hash[$K])" }) -join '; '
}



function Get-ModalTestCases() {
    return  @(
        @{Name         = 'Download Page'
            linkXPath  = '/html/body/div/div/section[2]/div[2]/a'
            modalXPath = '//*[@id="pretend-modal"]/div/div'
        },
        @{Name         = 'Screen Image'
            linkXPath  = '/html/body/div/div/section[3]/div/ul/li[1]/a'
            modalXPath = '/html/body/div[1]/div/div[2]'
        },
        @{Name         = 'Top Player'
            linkXPath  = '/html/body/div/div/section[4]/div/div/div[1]/div[2]/div[2]/div/a/div'
            modalXPath = '//*[@id="profile-modal-1"]/div/div'
        }
    )
}