1/* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16package android.net; 17 18import static android.net.NetworkPolicyManager.MASK_ALL_NETWORKS; 19import static android.net.NetworkPolicyManager.MASK_METERED_NETWORKS; 20import static android.net.NetworkPolicyManager.RULE_ALLOW_ALL; 21import static android.net.NetworkPolicyManager.RULE_ALLOW_METERED; 22import static android.net.NetworkPolicyManager.RULE_NONE; 23import static android.net.NetworkPolicyManager.RULE_REJECT_ALL; 24import static android.net.NetworkPolicyManager.RULE_REJECT_METERED; 25import static android.net.NetworkPolicyManager.RULE_TEMPORARY_ALLOW_METERED; 26import static android.net.NetworkPolicyManager.uidRulesToString; 27 28import junit.framework.TestCase; 29 30public class NetworkPolicyManagerTest extends TestCase { 31 32 public void testUidRulesToString() { 33 uidRulesToStringTest(RULE_NONE, "0 (NONE)"); 34 uidRulesToStringTest(RULE_ALLOW_METERED, "1 (ALLOW_METERED)"); 35 uidRulesToStringTest(RULE_TEMPORARY_ALLOW_METERED, "2 (TEMPORARY_ALLOW_METERED)"); 36 uidRulesToStringTest(RULE_REJECT_METERED, "4 (REJECT_METERED)"); 37 uidRulesToStringTest(RULE_ALLOW_ALL, "32 (ALLOW_ALL)"); 38 uidRulesToStringTest(RULE_REJECT_ALL, "64 (REJECT_ALL)"); 39 40 uidRulesToStringTest(RULE_ALLOW_METERED | RULE_ALLOW_ALL, 41 "33 (ALLOW_METERED|ALLOW_ALL)"); 42 uidRulesToStringTest(RULE_ALLOW_METERED | RULE_REJECT_ALL, 43 "65 (ALLOW_METERED|REJECT_ALL)"); 44 uidRulesToStringTest(RULE_TEMPORARY_ALLOW_METERED | RULE_ALLOW_ALL, 45 "34 (TEMPORARY_ALLOW_METERED|ALLOW_ALL)"); 46 uidRulesToStringTest(RULE_TEMPORARY_ALLOW_METERED | RULE_REJECT_ALL, 47 "66 (TEMPORARY_ALLOW_METERED|REJECT_ALL)"); 48 uidRulesToStringTest(RULE_REJECT_METERED | RULE_ALLOW_ALL, 49 "36 (REJECT_METERED|ALLOW_ALL)"); 50 uidRulesToStringTest(RULE_REJECT_METERED | RULE_REJECT_ALL, 51 "68 (REJECT_METERED|REJECT_ALL)"); 52 } 53 54 private void uidRulesToStringTest(int uidRules, String expected) { 55 final String actual = uidRulesToString(uidRules); 56 assertEquals("Wrong string for uidRules " + uidRules, expected, actual); 57 } 58 59 public void testMeteredNetworksMask() { 60 assertEquals(RULE_NONE, MASK_METERED_NETWORKS 61 & RULE_NONE); 62 63 assertEquals(RULE_ALLOW_METERED, MASK_METERED_NETWORKS 64 & RULE_ALLOW_METERED); 65 assertEquals(RULE_ALLOW_METERED, MASK_METERED_NETWORKS 66 & (RULE_ALLOW_METERED | RULE_ALLOW_ALL)); 67 assertEquals(RULE_ALLOW_METERED, MASK_METERED_NETWORKS 68 & (RULE_ALLOW_METERED | RULE_REJECT_ALL)); 69 70 assertEquals(RULE_TEMPORARY_ALLOW_METERED, MASK_METERED_NETWORKS 71 & RULE_TEMPORARY_ALLOW_METERED); 72 assertEquals(RULE_TEMPORARY_ALLOW_METERED, MASK_METERED_NETWORKS 73 & (RULE_TEMPORARY_ALLOW_METERED | RULE_ALLOW_ALL)); 74 assertEquals(RULE_TEMPORARY_ALLOW_METERED, MASK_METERED_NETWORKS 75 & (RULE_TEMPORARY_ALLOW_METERED | RULE_REJECT_ALL)); 76 77 assertEquals(RULE_REJECT_METERED, MASK_METERED_NETWORKS 78 & RULE_REJECT_METERED); 79 assertEquals(RULE_REJECT_METERED, MASK_METERED_NETWORKS 80 & (RULE_REJECT_METERED | RULE_ALLOW_ALL)); 81 assertEquals(RULE_REJECT_METERED, MASK_METERED_NETWORKS 82 & (RULE_REJECT_METERED | RULE_REJECT_ALL)); 83 } 84 85 public void testAllNetworksMask() { 86 assertEquals(RULE_NONE, MASK_ALL_NETWORKS 87 & RULE_NONE); 88 89 assertEquals(RULE_ALLOW_ALL, MASK_ALL_NETWORKS 90 & RULE_ALLOW_ALL); 91 assertEquals(RULE_ALLOW_ALL, MASK_ALL_NETWORKS 92 & (RULE_ALLOW_ALL | RULE_ALLOW_METERED)); 93 assertEquals(RULE_ALLOW_ALL, MASK_ALL_NETWORKS 94 & (RULE_ALLOW_ALL | RULE_TEMPORARY_ALLOW_METERED)); 95 assertEquals(RULE_ALLOW_ALL, MASK_ALL_NETWORKS 96 & (RULE_ALLOW_ALL | RULE_REJECT_METERED)); 97 98 assertEquals(RULE_REJECT_ALL, MASK_ALL_NETWORKS 99 & RULE_REJECT_ALL); 100 assertEquals(RULE_REJECT_ALL, MASK_ALL_NETWORKS 101 & (RULE_REJECT_ALL | RULE_ALLOW_METERED)); 102 assertEquals(RULE_REJECT_ALL, MASK_ALL_NETWORKS 103 & (RULE_REJECT_ALL | RULE_TEMPORARY_ALLOW_METERED)); 104 assertEquals(RULE_REJECT_ALL, MASK_ALL_NETWORKS 105 & (RULE_REJECT_ALL | RULE_REJECT_METERED)); 106 } 107} 108