10fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski/*
20fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * Copyright (C) 2016 The Android Open Source Project
30fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski *
40fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * Licensed under the Apache License, Version 2.0 (the "License");
50fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * you may not use this file except in compliance with the License.
60fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * You may obtain a copy of the License at
70fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski *
80fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski *      http://www.apache.org/licenses/LICENSE-2.0
90fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski *
100fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * Unless required by applicable law or agreed to in writing, software
110fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * distributed under the License is distributed on an "AS IS" BASIS,
120fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * See the License for the specific language governing permissions and
140fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * limitations under the License.
150fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski */
160fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski
170fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskipackage com.android.server.wifi;
180fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski
190fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskiimport static org.junit.Assert.assertFalse;
200fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskiimport static org.junit.Assert.assertTrue;
210fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski
220fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskiimport android.content.pm.UserInfo;
230fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskiimport android.net.wifi.WifiConfiguration;
240fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskiimport android.os.UserHandle;
250fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskiimport android.test.suitebuilder.annotation.SmallTest;
260fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski
270fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskiimport org.junit.Test;
280fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski
290fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskiimport java.util.Arrays;
300fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskiimport java.util.List;
310fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski
320fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski/**
330fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * Unit tests for {@link com.android.server.wifi.WifiConfigurationUtil}.
340fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski */
350fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski@SmallTest
360fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskipublic class WifiConfigurationUtilTest {
370fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski    static final int CURRENT_USER_ID = 0;
380fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski    static final int CURRENT_USER_MANAGED_PROFILE_USER_ID = 10;
390fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski    static final int OTHER_USER_ID = 11;
400fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski    static final List<UserInfo> PROFILES = Arrays.asList(
410fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski            new UserInfo(CURRENT_USER_ID, "owner", 0),
420fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski            new UserInfo(CURRENT_USER_MANAGED_PROFILE_USER_ID, "managed profile", 0));
430fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski
440fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski    /**
450fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski     * Test for {@link WifiConfigurationUtil.isVisibleToAnyProfile}.
460fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski     */
470fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski    @Test
480fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski    public void isVisibleToAnyProfile() {
490fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        // Shared network configuration created by another user.
500fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        final WifiConfiguration configuration = new WifiConfiguration();
510fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        configuration.creatorUid = UserHandle.getUid(OTHER_USER_ID, 0);
520fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        assertTrue(WifiConfigurationUtil.isVisibleToAnyProfile(configuration, PROFILES));
530fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski
540fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        // Private network configuration created by another user.
550fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        configuration.shared = false;
560fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        assertFalse(WifiConfigurationUtil.isVisibleToAnyProfile(configuration, PROFILES));
570fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski
580fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        // Private network configuration created by the current user.
590fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        configuration.creatorUid = UserHandle.getUid(CURRENT_USER_ID, 0);
600fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        assertTrue(WifiConfigurationUtil.isVisibleToAnyProfile(configuration, PROFILES));
610fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski
620fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        // Private network configuration created by the current user's managed profile.
630fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        configuration.creatorUid = UserHandle.getUid(CURRENT_USER_MANAGED_PROFILE_USER_ID, 0);
640fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski        assertTrue(WifiConfigurationUtil.isVisibleToAnyProfile(configuration, PROFILES));
650fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski    }
660fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski}
67