|
1 | 1 | package com.example.util.simpletimetracker
|
2 | 2 |
|
3 | 3 | import android.widget.DatePicker
|
| 4 | +import androidx.test.espresso.Espresso.onData |
4 | 5 | import androidx.test.espresso.Espresso.onView
|
5 | 6 | import androidx.test.espresso.Espresso.pressBack
|
6 | 7 | import androidx.test.espresso.action.ViewActions.click
|
| 8 | +import androidx.test.espresso.action.ViewActions.scrollTo |
7 | 9 | import androidx.test.espresso.assertion.ViewAssertions.matches
|
8 | 10 | import androidx.test.espresso.contrib.PickerActions.setDate
|
9 | 11 | import androidx.test.espresso.contrib.PickerActions.setTime
|
@@ -42,13 +44,15 @@ import com.example.util.simpletimetracker.utils.tryAction
|
42 | 44 | import com.example.util.simpletimetracker.utils.unconstrainedClickOnView
|
43 | 45 | import com.example.util.simpletimetracker.utils.withPluralText
|
44 | 46 | import dagger.hilt.android.testing.HiltAndroidTest
|
45 |
| -import java.util.Calendar |
46 |
| -import java.util.concurrent.TimeUnit |
47 | 47 | import kotlinx.coroutines.runBlocking
|
48 | 48 | import org.hamcrest.CoreMatchers.allOf
|
49 | 49 | import org.hamcrest.CoreMatchers.equalTo
|
| 50 | +import org.hamcrest.CoreMatchers.instanceOf |
| 51 | +import org.hamcrest.CoreMatchers.`is` |
50 | 52 | import org.junit.Test
|
51 | 53 | import org.junit.runner.RunWith
|
| 54 | +import java.util.Calendar |
| 55 | +import java.util.concurrent.TimeUnit |
52 | 56 | import com.example.util.simpletimetracker.core.R as coreR
|
53 | 57 | import com.example.util.simpletimetracker.feature_base_adapter.R as baseR
|
54 | 58 | import com.example.util.simpletimetracker.feature_change_record_type.R as changeRecordTypeR
|
@@ -608,6 +612,100 @@ class SettingsTest : BaseUiTest() {
|
608 | 612 | NavUtils.openSettingsScreen()
|
609 | 613 | }
|
610 | 614 |
|
| 615 | + @Test |
| 616 | + fun changeLanguage() { |
| 617 | + NavUtils.openSettingsScreen() |
| 618 | + onView(withId(settingsR.id.spinnerSettingsLanguage)).perform(nestedScrollTo()) |
| 619 | + checkViewIsDisplayed( |
| 620 | + allOf( |
| 621 | + withId(settingsR.id.tvSettingsLanguageValue), |
| 622 | + withText(coreR.string.settings_dark_mode_system), |
| 623 | + ), |
| 624 | + ) |
| 625 | + clickOnSpinnerWithId(settingsR.id.spinnerSettingsLanguage) |
| 626 | + listOf( |
| 627 | + coreR.string.settings_english_language, |
| 628 | + coreR.string.settings_arabic_language, |
| 629 | + coreR.string.settings_catalan_language, |
| 630 | + coreR.string.settings_german_language, |
| 631 | + coreR.string.settings_spanish_language, |
| 632 | + coreR.string.settings_farsi_language, |
| 633 | + coreR.string.settings_french_language, |
| 634 | + coreR.string.settings_hindi_language, |
| 635 | + coreR.string.settings_indonesian_language, |
| 636 | + coreR.string.settings_italian_language, |
| 637 | + coreR.string.settings_japanese_language, |
| 638 | + coreR.string.settings_korean_language, |
| 639 | + coreR.string.settings_dutch_language, |
| 640 | + coreR.string.settings_portuguese_language, |
| 641 | + coreR.string.settings_russian_language, |
| 642 | + coreR.string.settings_swedish_language, |
| 643 | + coreR.string.settings_turkish_language, |
| 644 | + coreR.string.settings_ukrainian_language, |
| 645 | + coreR.string.settings_chinese_simplified_language, |
| 646 | + coreR.string.settings_chinese_traditional_language, |
| 647 | + ).forEach { |
| 648 | + onData(allOf(`is`(instanceOf(String::class.java)), `is`(getString(it)))).perform(scrollTo()) |
| 649 | + checkViewIsDisplayed(withText(it)) |
| 650 | + } |
| 651 | + } |
| 652 | + |
| 653 | + @Test |
| 654 | + fun navigation() { |
| 655 | + NavUtils.openSettingsScreen() |
| 656 | + |
| 657 | + NavUtils.openCategoriesScreen() |
| 658 | + checkViewIsDisplayed(withText(coreR.string.categories_record_type_hint)) |
| 659 | + pressBack() |
| 660 | + |
| 661 | + NavUtils.openArchiveScreen() |
| 662 | + checkViewIsDisplayed(withText(coreR.string.archive_empty)) |
| 663 | + pressBack() |
| 664 | + |
| 665 | + NavUtils.openDataEditScreen() |
| 666 | + checkViewIsDisplayed(withText(coreR.string.data_edit_select_records)) |
| 667 | + } |
| 668 | + |
| 669 | + @Test |
| 670 | + fun feedbackBlock() { |
| 671 | + NavUtils.openSettingsScreen() |
| 672 | + |
| 673 | + onView(withText(coreR.string.settings_rate)).perform(nestedScrollTo()) |
| 674 | + onView(withText(coreR.string.settings_feedback)).perform(nestedScrollTo()) |
| 675 | + onView(withText(coreR.string.settings_version)).perform(nestedScrollTo()) |
| 676 | + } |
| 677 | + |
| 678 | + @Test |
| 679 | + fun translators() { |
| 680 | + NavUtils.openSettingsScreen() |
| 681 | + |
| 682 | + onView(withText(coreR.string.settings_translators)).perform(nestedScrollTo()) |
| 683 | + listOf( |
| 684 | + coreR.string.settings_arabic_translators, |
| 685 | + coreR.string.settings_catalan_translators, |
| 686 | + coreR.string.settings_german_translators, |
| 687 | + coreR.string.settings_spanish_translators, |
| 688 | + coreR.string.settings_farsi_translators, |
| 689 | + coreR.string.settings_french_translators, |
| 690 | + coreR.string.settings_hindi_translators, |
| 691 | + coreR.string.settings_indonesian_translators, |
| 692 | + coreR.string.settings_italian_translators, |
| 693 | + coreR.string.settings_japanese_translators, |
| 694 | + coreR.string.settings_korean_translators, |
| 695 | + coreR.string.settings_dutch_translators, |
| 696 | + coreR.string.settings_portuguese_translators, |
| 697 | + coreR.string.settings_russian_translators, |
| 698 | + coreR.string.settings_swedish_translators, |
| 699 | + coreR.string.settings_turkish_translators, |
| 700 | + coreR.string.settings_ukrainian_translators, |
| 701 | + coreR.string.settings_chinese_simplified_translators, |
| 702 | + coreR.string.settings_chinese_traditional_translators, |
| 703 | + ).forEach { |
| 704 | + onView(withText(it)).perform(nestedScrollTo()) |
| 705 | + checkViewIsDisplayed(withText(it)) |
| 706 | + } |
| 707 | + } |
| 708 | + |
611 | 709 | @Test
|
612 | 710 | fun inactivityReminder() {
|
613 | 711 | // Change settings
|
|
0 commit comments