-
-
Notifications
You must be signed in to change notification settings - Fork 110
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added reading time/word count for languages which use spaces
- Loading branch information
1 parent
e89df3b
commit 510a38a
Showing
26 changed files
with
1,989 additions
and
29 deletions.
There are no files selected for viewing
743 changes: 743 additions & 0 deletions
743
app/schemas/com.nononsenseapps.feeder.db.room.AppDatabase/30.json
Large diffs are not rendered by default.
Oops, something went wrong.
749 changes: 749 additions & 0 deletions
749
app/schemas/com.nononsenseapps.feeder.db.room.AppDatabase/31.json
Large diffs are not rendered by default.
Oops, something went wrong.
73 changes: 73 additions & 0 deletions
73
app/src/androidTest/java/com/nononsenseapps/feeder/db/room/TestMigrationFrom29To30.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
package com.nononsenseapps.feeder.db.room | ||
|
||
import androidx.room.testing.MigrationTestHelper | ||
import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory | ||
import androidx.test.core.app.ApplicationProvider | ||
import androidx.test.ext.junit.runners.AndroidJUnit4 | ||
import androidx.test.filters.LargeTest | ||
import androidx.test.platform.app.InstrumentationRegistry | ||
import com.nononsenseapps.feeder.FeederApplication | ||
import kotlin.test.assertEquals | ||
import org.junit.Rule | ||
import org.junit.Test | ||
import org.junit.runner.RunWith | ||
import org.kodein.di.DI | ||
import org.kodein.di.DIAware | ||
import org.kodein.di.android.closestDI | ||
|
||
@RunWith(AndroidJUnit4::class) | ||
@LargeTest | ||
class TestMigrationFrom29To30 : DIAware { | ||
private val dbName = "testDb" | ||
private val feederApplication: FeederApplication = ApplicationProvider.getApplicationContext() | ||
override val di: DI by closestDI(feederApplication) | ||
|
||
@Rule | ||
@JvmField | ||
val testHelper: MigrationTestHelper = MigrationTestHelper( | ||
InstrumentationRegistry.getInstrumentation(), | ||
AppDatabase::class.java, | ||
emptyList(), | ||
FrameworkSQLiteOpenHelperFactory(), | ||
) | ||
|
||
@Test | ||
fun migrate() { | ||
@Suppress("SimpleRedundantLet") | ||
testHelper.createDatabase(dbName, FROM_VERSION).let { oldDB -> | ||
oldDB.execSQL( | ||
""" | ||
INSERT INTO feeds(id, title, url, custom_title, tag, notify, last_sync, response_hash, fulltext_by_default, open_articles_with, alternate_id, currently_syncing, when_modified, site_fetched) | ||
VALUES(1, 'feed', 'http://url', '', '', 0, 0, 666, 0, '', 0, 0, 0, 0) | ||
""".trimIndent(), | ||
) | ||
oldDB.execSQL( | ||
""" | ||
INSERT INTO feed_items(id, guid, title, plain_title, plain_snippet, notified, feed_id, first_synced_time, primary_sort_time, pinned, bookmarked, fulltext_downloaded, read_time, unread) | ||
VALUES(8, 'http://item1', 'title', 'ptitle', 'psnippet', 0, 1, 0, 0, 1, 0, 0, 0, 1) | ||
""".trimIndent(), | ||
) | ||
} | ||
val db = testHelper.runMigrationsAndValidate( | ||
dbName, | ||
TO_VERSION, | ||
true, | ||
MigrationFrom29To30(di), | ||
) | ||
|
||
db.query( | ||
""" | ||
SELECT word_count FROM feed_items | ||
""".trimIndent(), | ||
).use { | ||
assert(it.count == 1) | ||
assert(it.moveToFirst()) | ||
assertEquals(0, it.getInt(0)) | ||
} | ||
} | ||
|
||
companion object { | ||
private const val FROM_VERSION = 29 | ||
private const val TO_VERSION = 30 | ||
} | ||
} |
73 changes: 73 additions & 0 deletions
73
app/src/androidTest/java/com/nononsenseapps/feeder/db/room/TestMigrationFrom30To31.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
package com.nononsenseapps.feeder.db.room | ||
|
||
import androidx.room.testing.MigrationTestHelper | ||
import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory | ||
import androidx.test.core.app.ApplicationProvider | ||
import androidx.test.ext.junit.runners.AndroidJUnit4 | ||
import androidx.test.filters.LargeTest | ||
import androidx.test.platform.app.InstrumentationRegistry | ||
import com.nononsenseapps.feeder.FeederApplication | ||
import kotlin.test.assertEquals | ||
import org.junit.Rule | ||
import org.junit.Test | ||
import org.junit.runner.RunWith | ||
import org.kodein.di.DI | ||
import org.kodein.di.DIAware | ||
import org.kodein.di.android.closestDI | ||
|
||
@RunWith(AndroidJUnit4::class) | ||
@LargeTest | ||
class TestMigrationFrom30To31 : DIAware { | ||
private val dbName = "testDb" | ||
private val feederApplication: FeederApplication = ApplicationProvider.getApplicationContext() | ||
override val di: DI by closestDI(feederApplication) | ||
|
||
@Rule | ||
@JvmField | ||
val testHelper: MigrationTestHelper = MigrationTestHelper( | ||
InstrumentationRegistry.getInstrumentation(), | ||
AppDatabase::class.java, | ||
emptyList(), | ||
FrameworkSQLiteOpenHelperFactory(), | ||
) | ||
|
||
@Test | ||
fun migrate() { | ||
@Suppress("SimpleRedundantLet") | ||
testHelper.createDatabase(dbName, FROM_VERSION).let { oldDB -> | ||
oldDB.execSQL( | ||
""" | ||
INSERT INTO feeds(id, title, url, custom_title, tag, notify, last_sync, response_hash, fulltext_by_default, open_articles_with, alternate_id, currently_syncing, when_modified, site_fetched) | ||
VALUES(1, 'feed', 'http://url', '', '', 0, 0, 666, 0, '', 0, 0, 0, 0) | ||
""".trimIndent(), | ||
) | ||
oldDB.execSQL( | ||
""" | ||
INSERT INTO feed_items(id, guid, title, plain_title, plain_snippet, notified, feed_id, first_synced_time, primary_sort_time, pinned, bookmarked, fulltext_downloaded, read_time, unread, word_count) | ||
VALUES(8, 'http://item1', 'title', 'ptitle', 'psnippet', 0, 1, 0, 0, 1, 0, 0, 0, 1, 5) | ||
""".trimIndent(), | ||
) | ||
} | ||
val db = testHelper.runMigrationsAndValidate( | ||
dbName, | ||
TO_VERSION, | ||
true, | ||
MigrationFrom30To31(di), | ||
) | ||
|
||
db.query( | ||
""" | ||
SELECT word_count_full FROM feed_items | ||
""".trimIndent(), | ||
).use { | ||
assert(it.count == 1) | ||
assert(it.moveToFirst()) | ||
assertEquals(0, it.getInt(0)) | ||
} | ||
} | ||
|
||
companion object { | ||
private const val FROM_VERSION = 30 | ||
private const val TO_VERSION = 31 | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.