mirror of https://github.com/jacekkow/uphpCAS-tests

Jacek Kowalski
2015-09-05 5686c9d8de959de0818bcd0a5b18a9c004d3dfc5
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import org.junit.Test
 
import org.openqa.selenium.WebDriver
import org.openqa.selenium.By
 
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.Parameter
import org.junit.runners.Parameterized.Parameters
 
import Config
import Common
 
@RunWith(Parameterized.class)
class StandardTests {
    @Parameters
    public static Iterable<Object[]> data() {
        return [
            // cas, cafile, method, login page expected text, main page expected text
            
            // HTTP should succeed
            [ "http://127.0.0.1:8081/cas.php", null, null, "Authenticated as user123", "Authenticated as user123" ] as Object[],
            [ "http://127.0.0.1:8081/cas.php", null, "GET", "Authenticated as user123", "Authenticated as user123" ] as Object[],
            [ "http://127.0.0.1:8081/cas.php", null, "POST", "Authenticated as user123", "Authenticated as user123" ] as Object[],
            
            // HTTPS should succeed
            [ "https://127.0.0.1:8444/cas.php", "/tmp/correct.crt", null, "Authenticated as user123", "Authenticated as user123" ] as Object[],
            [ "https://127.0.0.1:8444/cas.php", "/tmp/correct.crt", "GET", "Authenticated as user123", "Authenticated as user123" ] as Object[],
            [ "https://127.0.0.1:8444/cas.php", "/tmp/correct.crt", "POST", "Authenticated as user123", "Authenticated as user123" ] as Object[],
            
            // system CAfile does not contain this self-signed certificate - should fail
            [ "https://127.0.0.1:8444/cas.php", null, null, "CAS server is unavailable", "Not authenticated." ] as Object[],
            [ "https://127.0.0.1:8444/cas.php", null, "GET", "CAS server is unavailable", "Not authenticated." ] as Object[],
            [ "https://127.0.0.1:8444/cas.php", null, "POST", "CAS server is unavailable", "Not authenticated." ] as Object[],
            // wrongcn.crt does not contain correct.crt - should fail
            [ "https://127.0.0.1:8444/cas.php", "/tmp/wrongcn.crt", null, "CAS server is unavailable", "Not authenticated." ] as Object[],
            [ "https://127.0.0.1:8444/cas.php", "/tmp/wrongcn.crt", "GET", "CAS server is unavailable", "Not authenticated." ] as Object[],
            [ "https://127.0.0.1:8444/cas.php", "/tmp/wrongcn.crt", "POST", "CAS server is unavailable", "Not authenticated." ] as Object[],
            
            // system CAfile does not contain this self-signed certificate - should fail
            [ "https://127.0.0.1:8445/cas.php", null, null, "CAS server is unavailable", "Not authenticated." ] as Object[],
            [ "https://127.0.0.1:8445/cas.php", null, "GET", "CAS server is unavailable", "Not authenticated." ] as Object[],
            [ "https://127.0.0.1:8445/cas.php", null, "POST", "CAS server is unavailable", "Not authenticated." ] as Object[],
            // correct.crt does not contain wrongcn.crt - should fail
            [ "https://127.0.0.1:8445/cas.php", "/tmp/correct.crt", null, "CAS server is unavailable", "Not authenticated." ] as Object[],
            [ "https://127.0.0.1:8445/cas.php", "/tmp/correct.crt", "GET", "CAS server is unavailable", "Not authenticated." ] as Object[],
            [ "https://127.0.0.1:8445/cas.php", "/tmp/correct.crt", "POST", "CAS server is unavailable", "Not authenticated." ] as Object[],
            // wrongcn.crt is issued to 127.0.0.2, not 127.0.0.1 - should fail
            [ "https://127.0.0.1:8445/cas.php", "/tmp/wrongcn.crt", null, "CAS server is unavailable", "Not authenticated." ] as Object[],
            [ "https://127.0.0.1:8445/cas.php", "/tmp/wrongcn.crt", "GET", "CAS server is unavailable", "Not authenticated." ] as Object[],
            [ "https://127.0.0.1:8445/cas.php", "/tmp/wrongcn.crt", "POST", "CAS server is unavailable", "Not authenticated." ] as Object[],
        ]
    }
    
    @Parameter(0)
    public String cas
    @Parameter(1)
    public String cafile
    @Parameter(2)
    public String method
    @Parameter(3)
    public String expectLogin
    @Parameter(4)
    public String expectMain
    
    @Test
    public void testSinglePage() {
        WebDriver driver = Common.set(cas, cafile, method)
        
        def url = Config.baseUrl + "/basic/"
        Common.loginSingle(url, driver)
        
        if(method.equals("GET")) {
            assert driver.getCurrentUrl().contains("ticket=")
        } else {
            assert !driver.getCurrentUrl().contains("ticket=")
        }
        
        // Post-login
        assert driver.getPageSource().contains(expectLogin)
    }
    
    @Test
    public void testMultiPage() {
        WebDriver driver = Common.set(cas, cafile, method)
        
        def url = Config.baseUrl + "/login-page/"
        Common.loginMulti(url, driver)
        
        // Post-login
        assert driver.getPageSource().contains(expectLogin)
        
        // Main page (again)
        driver.get(url)
        assert driver.getPageSource().contains(expectMain)
    }
}