Skip to content

Commit a962f2a

Browse files
Merge pull request #963 from StepicOrg/feature/APPS_3635_add_kaspresso
APPS-3635: Add Kaspresso
2 parents 8a60892 + f6906ba commit a962f2a

9 files changed

Lines changed: 70 additions & 29 deletions

File tree

app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,6 @@ dependencies {
215215
implementation libraries.firebaseAppindexing
216216
implementation libraries.googleauth
217217
implementation libraries.firebaseConfig
218-
implementation libraries.firebasePerf
219218

220219
// implementation libraries.facebookSdk
221220
implementation libraries.vkSdk
@@ -256,6 +255,8 @@ dependencies {
256255
androidTestImplementation libraries.espressoCore
257256
androidTestImplementation libraries.espressoContrib
258257
androidTestImplementation libraries.espressoIntents
258+
androidTestImplementation libraries.kaspresso
259+
androidTestImplementation libraries.kaspressoAllure
259260

260261
debugImplementation libraries.soloader
261262
debugImplementation libraries.flipperCore
@@ -277,5 +278,4 @@ afterEvaluate {
277278
apply plugin: 'com.google.gms.google-services'
278279
if (getGradle().getStartParameter().getTaskRequests().toString().contains("Release")) {
279280
apply plugin: 'com.getkeepsafe.dexcount'
280-
}
281-
apply plugin: 'com.google.firebase.firebase-perf'
281+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package org.stepik.android.view.auth.ui.activity
2+
3+
import androidx.test.ext.junit.rules.ActivityScenarioRule
4+
import com.kaspersky.kaspresso.testcases.api.testcase.TestCase
5+
import org.junit.Rule
6+
import org.junit.Test
7+
8+
class AuthSampleTest : TestCase() {
9+
@get:Rule
10+
val activityTestRule = ActivityScenarioRule(SocialAuthActivity::class.java)
11+
12+
@Test
13+
fun test() =
14+
run {
15+
step("Open Social Auth Screen") {
16+
testLogger.d("I am testLogger")
17+
SocialAuthScreen {
18+
signInWithEmailButton {
19+
isVisible()
20+
click()
21+
}
22+
}
23+
}
24+
25+
step("Open Credential Auth Screen") {
26+
CredentialAuthScreen {
27+
loginField.isVisible()
28+
loginField.typeText("test@stepik.org")
29+
passwordField.typeText("stepikthebest")
30+
loginField.hasText("test@stepik.org")
31+
}
32+
}
33+
}
34+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.stepik.android.view.auth.ui.activity
2+
3+
import org.stepic.droid.R
4+
import com.kaspersky.kaspresso.screens.KScreen
5+
import io.github.kakaocup.kakao.edit.KEditText
6+
7+
object CredentialAuthScreen : KScreen<CredentialAuthScreen>() {
8+
override val layoutId: Int = R.layout.activity_auth_credential
9+
override val viewClass: Class<*> = CredentialAuthActivity::class.java
10+
11+
val loginField = KEditText { withId(R.id.loginField) }
12+
val passwordField = KEditText { withId(R.id.passwordField) }
13+
14+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.stepik.android.view.auth.ui.activity
2+
3+
import com.kaspersky.kaspresso.screens.KScreen
4+
import io.github.kakaocup.kakao.text.KButton
5+
import org.stepic.droid.R
6+
7+
object SocialAuthScreen : KScreen<SocialAuthScreen>() {
8+
9+
override val layoutId: Int = R.layout.activity_auth_social
10+
override val viewClass: Class<*> = SocialAuthActivity::class.java
11+
12+
val signInWithEmailButton = KButton { withId(R.id.signInWithEmail) }
13+
}

app/src/main/java/org/stepic/droid/analytic/Analytic.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -337,11 +337,6 @@ interface Params {
337337
}
338338
}
339339

340-
interface Traces {
341-
String COURSE_CONTENT_LOADING = "course_content_loading";
342-
String SPLASH_LOADING = "splash_loading";
343-
}
344-
345340
void reportEvent(String eventName, Bundle bundle);
346341

347342
void reportEvent(String eventName, String id);

app/src/main/java/org/stepic/droid/core/presenters/SplashPresenter.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package org.stepic.droid.core.presenters
22

33
import android.content.res.Resources
44
import com.google.android.gms.tasks.Tasks
5-
import com.google.firebase.perf.FirebasePerformance
65
import com.google.firebase.remoteconfig.FirebaseRemoteConfig
76
import com.google.firebase.remoteconfig.ktx.get
87
import io.reactivex.Completable
@@ -32,7 +31,6 @@ import org.stepik.android.view.routing.deeplink.BranchDeepLinkParser
3231
import org.stepik.android.view.routing.deeplink.BranchRoute
3332
import org.stepik.android.view.splash.notification.RemindRegistrationNotificationDelegate
3433
import org.stepik.android.view.splash.notification.RetentionNotificationDelegate
35-
import java.util.concurrent.TimeUnit
3634
import javax.inject.Inject
3735

3836
@SplashScope
@@ -73,7 +71,6 @@ constructor(
7371
private var disposable: Disposable? = null
7472

7573
fun onSplashCreated(referringParams: JSONObject? = null) {
76-
val splashLoadingTrace = FirebasePerformance.startTrace(Analytic.Traces.SPLASH_LOADING)
7774
disposable = Completable
7875
.fromCallable {
7976
countNumberOfLaunches()
@@ -94,9 +91,6 @@ constructor(
9491
.andThen(resolveSplashRoute(referringParams))
9592
.subscribeOn(backgroundScheduler)
9693
.observeOn(mainScheduler)
97-
.doFinally {
98-
splashLoadingTrace.stop()
99-
}
10094
.subscribeBy(
10195
onError = emptyOnErrorStub,
10296
onSuccess = {

app/src/main/java/org/stepik/android/domain/course_content/interactor/CourseContentInteractor.kt

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
package org.stepik.android.domain.course_content.interactor
22

3-
import com.google.firebase.perf.FirebasePerformance
43
import io.reactivex.Observable
54
import io.reactivex.Single
65
import io.reactivex.rxkotlin.Observables
76
import io.reactivex.rxkotlin.Singles.zip
87
import io.reactivex.rxkotlin.toObservable
98
import io.reactivex.schedulers.Schedulers
109
import io.reactivex.subjects.PublishSubject
11-
import org.stepic.droid.analytic.AmplitudeAnalytic
12-
import org.stepic.droid.analytic.Analytic
1310
import ru.nobird.app.core.model.mapToLongArray
1411
import org.stepic.droid.util.plus
1512
import org.stepik.android.domain.base.DataSourceType
@@ -74,21 +71,12 @@ constructor(
7471
private fun getEmptySections(course: Course): Observable<Pair<Course, List<CourseContentItem>>> =
7572
Observable.just(course to emptyList())
7673

77-
private fun getContent(course: Course, items: List<CourseContentItem>, dataSourceType: DataSourceType): Observable<Pair<Course, List<CourseContentItem>>> {
78-
val courseContentLoadingTrace = FirebasePerformance.getInstance().newTrace(Analytic.Traces.COURSE_CONTENT_LOADING)
79-
courseContentLoadingTrace.putAttribute(AmplitudeAnalytic.Course.Params.COURSE, course.id.toString())
80-
courseContentLoadingTrace.putAttribute(AmplitudeAnalytic.Course.Params.SOURCE, dataSourceType.name)
81-
courseContentLoadingTrace.start()
82-
83-
return getSectionsOfCourse(course, dataSourceType)
74+
private fun getContent(course: Course, items: List<CourseContentItem>, dataSourceType: DataSourceType): Observable<Pair<Course, List<CourseContentItem>>> =
75+
getSectionsOfCourse(course, dataSourceType)
8476
.flatMap { populateSections(course, it, items, dataSourceType) }
8577
.flatMapObservable { populatedItems ->
8678
Observable.just(course to populatedItems) + loadUnits(course, populatedItems, dataSourceType)
8779
}
88-
.doOnComplete {
89-
courseContentLoadingTrace.stop()
90-
}
91-
}
9280

9381
private fun getSectionsOfCourse(course: Course, dataSourceType: DataSourceType): Single<List<Section>> =
9482
sectionRepository

build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ buildscript {
1616
classpath gradlePlugins.android
1717
classpath gradlePlugins.googleServices
1818
classpath gradlePlugins.crashlyticsPlugin
19-
classpath gradlePlugins.firebasePerfPlugin
2019
classpath gradlePlugins.kotlin
2120
classpath gradlePlugins.dexcount
2221
}

dependencies.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ ext.versions = [
103103
hamcrest : '2.1',
104104
espresso : '3.1.0',
105105
testCore : '1.1.1',
106+
kaspresso : '1.4.1',
106107

107108
ktlint : '0.34.2',
108109
ktlintRules : '1.0.0',
@@ -241,6 +242,9 @@ ext.libraries = [
241242
espressoCore : "androidx.test.espresso:espresso-core:$versions.espresso",
242243
espressoContrib : "androidx.test.espresso:espresso-contrib:$versions.espresso",
243244
espressoIntents : "androidx.test.espresso:espresso-intents:$versions.espresso",
245+
kaspresso : "com.kaspersky.android-components:kaspresso:$versions.kaspresso",
246+
kaspressoAllure : "com.kaspersky.android-components:kaspresso-allure-support:$versions.kaspresso",
247+
244248

245249
ktlint : "com.pinterest:ktlint:$versions.ktlint",
246250
ktlintRules : "ru.nobird.android.ktlint:rules:$versions.ktlintRules",

0 commit comments

Comments
 (0)