Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 06696374 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add unit test for fromPublicNetworkStats" into main am: 85421857

parents cfc84cce 85421857
Loading
Loading
Loading
Loading
+42 −0
Original line number Diff line number Diff line
@@ -17,12 +17,23 @@
package com.android.server.stats.pull.netstats

import android.net.NetworkStats
import android.net.NetworkStats.DEFAULT_NETWORK_NO
import android.net.NetworkStats.DEFAULT_NETWORK_YES
import android.net.NetworkStats.Entry
import android.net.NetworkStats.METERED_NO
import android.net.NetworkStats.ROAMING_NO
import android.net.NetworkStats.ROAMING_YES
import android.net.NetworkStats.SET_DEFAULT
import android.net.NetworkStats.TAG_NONE
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.testutils.assertEntryEquals
import com.android.testutils.assertNetworkStatsEquals
import com.android.testutils.makePublicStatsFromAndroidNetStats
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.doReturn
import org.mockito.Mockito.mock
import org.mockito.Mockito.`when`

/**
 * Build/Install/Run:
@@ -48,6 +59,37 @@ class NetworkStatsUtilsTest {
        assertEntryEquals(expectedEntry, entry)
    }

    @Test
    fun testPublicStatsToAndroidNetStats() {
        val uid1 = 10001
        val uid2 = 10002
        val testIface = "wlan0"
        val testAndroidNetStats = NetworkStats(0L, 3)
                .addEntry(Entry(testIface, uid1, SET_DEFAULT, TAG_NONE,
                        METERED_NO, ROAMING_NO, DEFAULT_NETWORK_YES, 20, 3, 57, 40, 3))
                .addEntry(Entry(
                        testIface, uid2, SET_DEFAULT, TAG_NONE,
                        METERED_NO, ROAMING_YES, DEFAULT_NETWORK_NO, 2, 7, 2, 5, 7))
                .addEntry(Entry(testIface, uid2, SET_DEFAULT, TAG_NONE,
                        METERED_NO, ROAMING_YES, DEFAULT_NETWORK_NO, 4, 5, 3, 1, 8))
        val publicStats: android.app.usage.NetworkStats =
                makePublicStatsFromAndroidNetStats(testAndroidNetStats)
        val androidNetStats: NetworkStats =
                NetworkStatsUtils.fromPublicNetworkStats(publicStats)

        // 1. The public `NetworkStats` class does not include interface information.
        //    Interface details must be removed and items with duplicated
        //    keys need to be merged before making any comparisons.
        // 2. The public `NetworkStats` class lacks an operations field.
        //    Thus, the information will not be preserved during the conversion.
        val expectedStats = NetworkStats(0L, 2)
                .addEntry(Entry(null, uid1, SET_DEFAULT, TAG_NONE,
                        METERED_NO, ROAMING_NO, DEFAULT_NETWORK_YES, 20, 3, 57, 40, 0))
                .addEntry(Entry(null, uid2, SET_DEFAULT, TAG_NONE,
                        METERED_NO, ROAMING_YES, DEFAULT_NETWORK_NO, 6, 12, 5, 6, 0))
        assertNetworkStatsEquals(expectedStats, androidNetStats)
    }

    private fun makeMockBucket(
            uid: Int,
            tag: Int,