1// Copyright 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5package org.chromium.android_webview.test;
6
7import android.test.AndroidTestCase;
8import android.test.suitebuilder.annotation.SmallTest;
9
10import org.chromium.android_webview.HttpAuthDatabase;
11import org.chromium.base.test.util.Feature;
12
13/**
14 * Test suite for HttpAuthDatabase.
15 */
16public class HttpAuthDatabaseTest extends AndroidTestCase {
17
18    private static final String TEST_DATABASE = "http_auth_for_HttpAuthDatabaseTest.db";
19
20    @Override
21    protected void setUp() throws Exception {
22        super.setUp();
23        getContext().deleteDatabase(TEST_DATABASE);
24    }
25
26    @Override
27    protected void tearDown() throws Exception {
28        getContext().deleteDatabase(TEST_DATABASE);
29        super.tearDown();
30    }
31
32    @SmallTest
33    @Feature({"AndroidWebView"})
34    public void testAccessHttpAuthUsernamePassword() throws Exception {
35        HttpAuthDatabase instance = HttpAuthDatabase.newInstance(getContext(), TEST_DATABASE);
36
37        String host = "http://localhost:8080";
38        String realm = "testrealm";
39        String userName = "user";
40        String password = "password";
41
42        String[] result = instance.getHttpAuthUsernamePassword(host, realm);
43        assertNull(result);
44
45        instance.setHttpAuthUsernamePassword(host, realm, userName, password);
46        result = instance.getHttpAuthUsernamePassword(host, realm);
47        assertNotNull(result);
48        assertEquals(userName, result[0]);
49        assertEquals(password, result[1]);
50
51        String newPassword = "newpassword";
52        instance.setHttpAuthUsernamePassword(host, realm, userName, newPassword);
53        result = instance.getHttpAuthUsernamePassword(host, realm);
54        assertNotNull(result);
55        assertEquals(userName, result[0]);
56        assertEquals(newPassword, result[1]);
57
58        String newUserName = "newuser";
59        instance.setHttpAuthUsernamePassword(host, realm, newUserName, newPassword);
60        result = instance.getHttpAuthUsernamePassword(host, realm);
61        assertNotNull(result);
62        assertEquals(newUserName, result[0]);
63        assertEquals(newPassword, result[1]);
64
65        instance.setHttpAuthUsernamePassword(host, realm, null, password);
66        result = instance.getHttpAuthUsernamePassword(host, realm);
67        assertNotNull(result);
68        assertNull(result[0]);
69        assertEquals(password, result[1]);
70
71        instance.setHttpAuthUsernamePassword(host, realm, userName, null);
72        result = instance.getHttpAuthUsernamePassword(host, realm);
73        assertNotNull(result);
74        assertEquals(userName, result[0]);
75        assertEquals(null, result[1]);
76
77        instance.setHttpAuthUsernamePassword(host, realm, null, null);
78        result = instance.getHttpAuthUsernamePassword(host, realm);
79        assertNotNull(result);
80        assertNull(result[0]);
81        assertNull(result[1]);
82
83        instance.setHttpAuthUsernamePassword(host, realm, newUserName, newPassword);
84        result = instance.getHttpAuthUsernamePassword(host, realm);
85        assertNotNull(result);
86        assertEquals(newUserName, result[0]);
87        assertEquals(newPassword, result[1]);
88    }
89}
90