Merge "Revert "Initial view screenshot tests for BubbleView"" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
afc2f976e3
@@ -52,14 +52,6 @@ filegroup {
|
||||
"tests/src/com/android/quickstep/TaplOverviewIconTest.java",
|
||||
"tests/src/com/android/quickstep/TaplTestsQuickstep.java",
|
||||
"tests/src/com/android/quickstep/TaplTestsSplitscreen.java",
|
||||
"tests/src/com/android/launcher3/testcomponent/ExcludeFromRecentsTestActivity.java",
|
||||
],
|
||||
}
|
||||
|
||||
filegroup {
|
||||
name: "launcher3-quickstep-screenshot-tests-src",
|
||||
path: "tests/multivalentScreenshotTests",
|
||||
srcs: [
|
||||
"tests/multivalentScreenshotTests/src/**/*.kt",
|
||||
"tests/src/com/android/launcher3/testcomponent/ExcludeFromRecentsTestActivity.java"
|
||||
],
|
||||
}
|
||||
|
||||
-121
@@ -1,121 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2024 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.android.launcher3.taskbar.bubbles
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.Canvas
|
||||
import android.graphics.Color
|
||||
import android.graphics.Paint
|
||||
import android.util.PathParser
|
||||
import android.view.LayoutInflater
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import com.android.launcher3.R
|
||||
import com.android.wm.shell.common.bubbles.BubbleInfo
|
||||
import com.google.android.apps.nexuslauncher.imagecomparison.goldenpathmanager.ViewScreenshotGoldenPathManager
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import platform.test.runner.parameterized.ParameterizedAndroidJunit4
|
||||
import platform.test.runner.parameterized.Parameters
|
||||
import platform.test.screenshot.DeviceEmulationSpec
|
||||
import platform.test.screenshot.Displays
|
||||
import platform.test.screenshot.ViewScreenshotTestRule
|
||||
import platform.test.screenshot.getEmulatedDevicePathConfig
|
||||
|
||||
/** Screenshot tests for [BubbleView]. */
|
||||
@RunWith(ParameterizedAndroidJunit4::class)
|
||||
class BubbleViewScreenshotTest(emulationSpec: DeviceEmulationSpec) {
|
||||
|
||||
private val context = ApplicationProvider.getApplicationContext<Context>()
|
||||
|
||||
companion object {
|
||||
@Parameters(name = "{0}")
|
||||
@JvmStatic
|
||||
fun getTestSpecs() =
|
||||
DeviceEmulationSpec.forDisplays(
|
||||
Displays.Phone,
|
||||
isDarkTheme = false,
|
||||
isLandscape = false
|
||||
)
|
||||
}
|
||||
|
||||
@get:Rule
|
||||
val screenshotRule =
|
||||
ViewScreenshotTestRule(
|
||||
emulationSpec,
|
||||
ViewScreenshotGoldenPathManager(getEmulatedDevicePathConfig(emulationSpec))
|
||||
)
|
||||
|
||||
@Test
|
||||
fun bubbleView_hasUnseenContent() {
|
||||
screenshotRule.screenshotTest("bubbleView_hasUnseenContent") { activity ->
|
||||
activity.actionBar?.hide()
|
||||
setupBubbleView()
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun bubbleView_seen() {
|
||||
screenshotRule.screenshotTest("bubbleView_seen") { activity ->
|
||||
activity.actionBar?.hide()
|
||||
setupBubbleView().apply { markSeen() }
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun bubbleView_badgeHidden() {
|
||||
screenshotRule.screenshotTest("bubbleView_badgeHidden") { activity ->
|
||||
activity.actionBar?.hide()
|
||||
setupBubbleView().apply { updateBadgeVisibility(false) }
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupBubbleView(): BubbleView {
|
||||
val inflater = LayoutInflater.from(context)
|
||||
|
||||
val iconSize = 100
|
||||
// BubbleView uses launcher's badge to icon ratio and expects the badge image to already
|
||||
// have the right size
|
||||
val badgeToIconRatio = 0.444f
|
||||
val badgeRadius = iconSize * badgeToIconRatio / 2
|
||||
val icon = createCircleBitmap(radius = iconSize / 2, color = Color.LTGRAY)
|
||||
val badge = createCircleBitmap(radius = badgeRadius.toInt(), color = Color.RED)
|
||||
|
||||
val bubbleInfo = BubbleInfo("key", 0, null, null, 0, context.packageName, null, null, false)
|
||||
val bubbleView = inflater.inflate(R.layout.bubblebar_item_view, null) as BubbleView
|
||||
val dotPath =
|
||||
PathParser.createPathFromPathData(
|
||||
context.resources.getString(com.android.internal.R.string.config_icon_mask)
|
||||
)
|
||||
val bubble =
|
||||
BubbleBarBubble(bubbleInfo, bubbleView, badge, icon, Color.BLUE, dotPath, "test app")
|
||||
bubbleView.setBubble(bubble)
|
||||
bubbleView.updateBadgeVisibility(true)
|
||||
bubbleView.showDotIfNeeded(1f)
|
||||
return bubbleView
|
||||
}
|
||||
|
||||
private fun createCircleBitmap(radius: Int, color: Int): Bitmap {
|
||||
val bitmap = Bitmap.createBitmap(radius * 2, radius * 2, Bitmap.Config.ARGB_8888)
|
||||
val canvas = Canvas(bitmap)
|
||||
canvas.drawARGB(0, 0, 0, 0)
|
||||
val paint = Paint()
|
||||
paint.color = color
|
||||
canvas.drawCircle(radius.toFloat(), radius.toFloat(), radius.toFloat(), paint)
|
||||
return bitmap
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user