Skip to content

Commit

Permalink
Merge a7b38d4 into 0132cdd
Browse files Browse the repository at this point in the history
  • Loading branch information
krystofwoldrich authored Oct 17, 2024
2 parents 0132cdd + a7b38d4 commit ffd2c3c
Show file tree
Hide file tree
Showing 8 changed files with 152 additions and 1 deletion.
3 changes: 2 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ apiValidation {
"sentry-uitest-android-benchmark",
"test-app-plain",
"test-app-sentry",
"sentry-samples-netflix-dgs"
"sentry-samples-netflix-dgs",
"sentry-uitest-android-critical"
)
)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/build
/maestro-logs
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import io.gitlab.arturbosch.detekt.Detekt

plugins {
id("com.android.application")
kotlin("android")
}

android {
compileSdk = Config.Android.compileSdkVersion
namespace = "io.sentry.uitest.android.critical"

defaultConfig {
applicationId = "io.sentry.uitest.android.critical"
minSdk = 21
targetSdk = Config.Android.targetSdkVersion
versionCode = 1
versionName = "1.0"
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = Config.androidComposeCompilerVersion
}
}

dependencies {
implementation(kotlin(Config.kotlinStdLib, org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION))
implementation(Config.Libs.androidxCore)
implementation(Config.Libs.composeActivity)
implementation(Config.Libs.composeFoundation)
implementation(Config.Libs.composeMaterial)
implementation(Config.Libs.constraintLayout)
implementation(projects.sentryAndroidCore)
}

tasks.withType<Detekt> {
// Target version of the generated JVM bytecode. It is used for type resolution.
jvmTarget = JavaVersion.VERSION_1_8.toString()
}

kotlin {
explicitApi()
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
appId: io.sentry.uitest.android.critical
---
- launchApp
- tapOn: "Write Corrupted Envelope"
# The close here ensures the next corrupted envelope
# will be present on the next app launch
- tapOn: "Close SDK"
- tapOn: "Write Corrupted Envelope"
- stopApp
- launchApp
- assertVisible: "Welcome!"
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
appId: io.sentry.uitest.android.critical
---
- launchApp
- tapOn: "Crash"
- launchApp
- assertVisible: "Welcome!"
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<application
android:label="Sentry UI Tests Critical"
android:supportsRtl="true"
tools:targetApi="31">
<meta-data android:name="io.sentry.dsn" android:value="https://5b38df1abca1468bac6d7517530f6802@o447951.ingest.us.sentry.io/5428559" />
<meta-data android:name="io.sentry.debug" android:value="true" />
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package io.sentry.uitest.android.critical

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Column
import androidx.compose.material3.Button
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import io.sentry.Sentry
import java.io.File

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val outboxPath = Sentry.getCurrentHub().options.outboxPath
?: throw RuntimeException("Outbox path is not set.")

setContent {
MaterialTheme {
Surface() {
Column() {
Text(text = "Welcome!")
Button(onClick = {
throw RuntimeException("Crash the test app.")
}) {
Text("Crash")
}
Button(onClick = {
Sentry.close()
}) {
Text("Close SDK")
}
Button(onClick = {
val file = File(outboxPath, "corrupted.envelope")
val corruptedEnvelopeContent = """
{"event_id":"1990b5bc31904b7395fd07feb72daf1c","sdk":{"name":"sentry.java.android","version":"7.21.0"}}
{"type":"test","length":50}
""".trimIndent()
file.writeText(corruptedEnvelopeContent)
println("Wrote corrupted envelope to: ${file.absolutePath}")
}) {
Text("Write Corrupted Envelope")
}
}
}
}
}
}
}
1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ include(
"sentry-samples:sentry-samples-spring-boot-webflux",
"sentry-samples:sentry-samples-spring-boot-webflux-jakarta",
"sentry-samples:sentry-samples-netflix-dgs",
"sentry-android-integration-tests:sentry-uitest-android-critical",
"sentry-android-integration-tests:sentry-uitest-android-benchmark",
"sentry-android-integration-tests:sentry-uitest-android",
"sentry-android-integration-tests:test-app-plain",
Expand Down

0 comments on commit ffd2c3c

Please sign in to comment.