Add tests for login, fix coverage not being counted
This commit is contained in:
parent
33f0711b1f
commit
1405d69861
@ -19,6 +19,11 @@ compileOptions {
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
sourceSets {
|
||||
main.java.srcDirs += 'src/main/java'
|
||||
test.java.srcDirs += 'src/test/java'
|
||||
androidTest.java.srcDirs += 'src/androidTest/java'
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
@ -29,6 +34,9 @@ compileOptions {
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
testOptions {
|
||||
animationsDisabled true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -52,6 +60,7 @@ dependencies {
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||
implementation 'com.google.android.material:material:1.1.0'
|
||||
androidTestImplementation 'androidx.test:rules:1.3.0-alpha04'
|
||||
}
|
||||
|
||||
|
||||
|
@ -0,0 +1,56 @@
|
||||
package com.h.pixeldroid
|
||||
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.test.espresso.Espresso.onView
|
||||
import androidx.test.espresso.action.ViewActions
|
||||
import androidx.test.espresso.action.ViewActions.click
|
||||
import androidx.test.espresso.assertion.ViewAssertions.matches
|
||||
import androidx.test.espresso.matcher.ViewMatchers
|
||||
import androidx.test.espresso.matcher.ViewMatchers.*
|
||||
import androidx.test.ext.junit.rules.ActivityScenarioRule
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import org.hamcrest.Description
|
||||
import org.hamcrest.Matcher
|
||||
import org.hamcrest.Matchers
|
||||
import org.hamcrest.TypeSafeMatcher
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
import org.junit.Assert.*
|
||||
import org.junit.Rule
|
||||
|
||||
/**
|
||||
* Instrumented test, which will execute on an Android device.
|
||||
*
|
||||
* See [testing documentation](http://d.android.com/tools/testing).
|
||||
*/
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class LoginInstrumentedTest {
|
||||
@get:Rule
|
||||
var activityRule: ActivityScenarioRule<MainActivity>
|
||||
= ActivityScenarioRule(MainActivity::class.java)
|
||||
@Test
|
||||
fun clickConnect() {
|
||||
onView(withId(R.id.button_start_login)).perform(click())
|
||||
onView(withId(R.id.connect_instance_button)).check(matches(withText("Connect")))
|
||||
}
|
||||
@Test
|
||||
fun invalidURL() {
|
||||
onView(withId(R.id.button_start_login)).perform(click())
|
||||
onView(withId(R.id.editText)).perform(ViewActions.replaceText("/jdi"), ViewActions.closeSoftKeyboard())
|
||||
onView(withId(R.id.connect_instance_button)).perform(click())
|
||||
onView(withId(R.id.editText)).check(matches(hasErrorText("Invalid domain")))
|
||||
|
||||
}
|
||||
@Test
|
||||
fun notPixelfedInstance() {
|
||||
onView(withId(R.id.button_start_login)).perform(click())
|
||||
onView(withId(R.id.editText)).perform(ViewActions.replaceText("localhost"), ViewActions.closeSoftKeyboard())
|
||||
onView(withId(R.id.connect_instance_button)).perform(click())
|
||||
onView(withId(R.id.editText)).check(matches(hasErrorText("Could not register the application with this server")))
|
||||
|
||||
}
|
||||
}
|
@ -43,7 +43,7 @@ interface PixelfedAPI {
|
||||
@Field("grant_type") grant_type: String? = null
|
||||
): Call<Token>
|
||||
|
||||
@GET("/api/v1/timelines/public")
|
||||
@GET("/api/v1/timelines/public")
|
||||
fun timelinePublic(
|
||||
@Query("local") local: Boolean? = null,
|
||||
@Query("max_id") max_id: String? = null,
|
||||
|
@ -152,4 +152,34 @@ class APIUnitTest {
|
||||
assertEquals(null, application.website)
|
||||
assertEquals(null, application.vapid_key)
|
||||
}
|
||||
@Test
|
||||
fun obtainToken(){
|
||||
stubFor(
|
||||
post(urlEqualTo("/oauth/token"))
|
||||
.willReturn(
|
||||
aResponse()
|
||||
.withStatus(200)
|
||||
.withHeader("Content-Type", "application/json")
|
||||
.withBody("""{
|
||||
"access_token": "ZA-Yj3aBD8U8Cm7lKUp-lm9O9BmDgdhHzDeqsY8tlL0",
|
||||
"token_type": "Bearer",
|
||||
"scope": "read write follow push",
|
||||
"created_at": 1573979017
|
||||
}"""
|
||||
)))
|
||||
val OAUTH_SCHEME = "oauth2redirect"
|
||||
val SCOPE = "read write follow"
|
||||
val PACKAGE_ID = "com.h.pixeldroid"
|
||||
val call: Call<Token> = PixelfedAPI.create("http://localhost:8089")
|
||||
.obtainToken("123", "ssqdfqsdfqds", "$OAUTH_SCHEME://$PACKAGE_ID", SCOPE, "abc",
|
||||
"authorization_code")
|
||||
val token: Token = call.execute().body()!!
|
||||
assertEquals("ZA-Yj3aBD8U8Cm7lKUp-lm9O9BmDgdhHzDeqsY8tlL0", token.access_token)
|
||||
assertEquals("Bearer", token.token_type)
|
||||
assertEquals("read write follow push", token.scope)
|
||||
assertEquals(1573979017, token.created_at)
|
||||
assertEquals(Token("ZA-Yj3aBD8U8Cm7lKUp-lm9O9BmDgdhHzDeqsY8tlL0", "Bearer", "read write follow push",1573979017), token)
|
||||
|
||||
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user