mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 04:43:54 +01:00
Add tests for PageTitle (#2624)
This commit is contained in:
parent
cfade144d9
commit
d719a4a9d4
2 changed files with 55 additions and 28 deletions
|
|
@ -14,11 +14,9 @@ public class PageTitle {
|
||||||
public PageTitle(@NonNull String prefixedText) {
|
public PageTitle(@NonNull String prefixedText) {
|
||||||
String[] segments = prefixedText.trim().replace(" ", "_").split(":", 2);
|
String[] segments = prefixedText.trim().replace(" ", "_").split(":", 2);
|
||||||
|
|
||||||
// canonicalize and capitalize page title as done by MediaWiki
|
// Canonicalize and capitalize page title and namespace (if present)
|
||||||
if (segments.length == 2) {
|
if (segments.length == 2) {
|
||||||
// TODO: canonicalize and capitalize namespace as well
|
namespace = Utils.capitalize(segments[0]);
|
||||||
// see https://www.mediawiki.org/wiki/Manual:Title.php#Canonical_forms
|
|
||||||
namespace = segments[0];
|
|
||||||
titleKey = Utils.capitalize(segments[1]);
|
titleKey = Utils.capitalize(segments[1]);
|
||||||
} else {
|
} else {
|
||||||
namespace = "";
|
namespace = "";
|
||||||
|
|
|
||||||
|
|
@ -8,37 +8,66 @@ import org.robolectric.annotation.Config
|
||||||
import java.net.URLEncoder
|
import java.net.URLEncoder
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner::class)
|
@RunWith(RobolectricTestRunner::class)
|
||||||
@Config(constants = BuildConfig::class, sdk = intArrayOf(21), application = TestCommonsApplication::class)
|
@Config(constants = BuildConfig::class, sdk = [21], application = TestCommonsApplication::class)
|
||||||
class PageTitleTest {
|
class PageTitleTest {
|
||||||
@Test
|
@Test
|
||||||
fun displayTextShouldNotBeUnderscored() {
|
fun displayTextShouldNotBeUnderscored() {
|
||||||
val pageTitle = PageTitle("Ex_1 ")
|
assertEquals("Ex 1", PageTitle("Ex_1").displayText)
|
||||||
assertEquals("Ex 1", pageTitle.displayText)
|
assertEquals("Ex 1", PageTitle("Ex_1 ").displayText)
|
||||||
}
|
assertEquals("Ex 1", PageTitle("Ex 1").displayText)
|
||||||
|
assertEquals("Ex 1", PageTitle("Ex 1 ").displayText)
|
||||||
@Test
|
assertEquals("File:Ex 1 2", PageTitle("File:Ex_1_2 ").displayText)
|
||||||
fun moreThanTwoColons() {
|
|
||||||
val pageTitle = PageTitle("File:sample:a.jpg")
|
|
||||||
assertEquals("File:Sample:a.jpg", pageTitle.prefixedText)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun getTextShouldReturnWithoutNamespace() {
|
|
||||||
val pageTitle = PageTitle("File:sample.jpg")
|
|
||||||
assertEquals("Sample.jpg", pageTitle.text)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun capitalizeNameAfterNamespace() {
|
|
||||||
val pageTitle = PageTitle("File:sample.jpg")
|
|
||||||
assertEquals("File:Sample.jpg", pageTitle.prefixedText)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun prefixedTextShouldBeUnderscored() {
|
fun prefixedTextShouldBeUnderscored() {
|
||||||
val pageTitle = PageTitle("Ex 1 ")
|
assertEquals("Ex_1", PageTitle("Ex_1").prefixedText)
|
||||||
assertEquals("Ex_1", pageTitle.prefixedText)
|
assertEquals("Ex_1", PageTitle("Ex_1 ").prefixedText)
|
||||||
|
assertEquals("Ex_1", PageTitle("Ex 1").prefixedText)
|
||||||
|
assertEquals("Ex_1", PageTitle("Ex 1 ").prefixedText)
|
||||||
|
assertEquals("File:Ex_1_2", PageTitle("File:Ex 1 2 ").prefixedText)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun fileNameWithOneColon() {
|
||||||
|
val pageTitle = PageTitle("File:sample:a.jpg")
|
||||||
|
assertEquals("File:Sample:a.jpg", pageTitle.prefixedText)
|
||||||
|
assertEquals("File:Sample:a.jpg", pageTitle.displayText)
|
||||||
|
assertEquals("Sample:a.jpg", pageTitle.text)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun fileNameWithMoreThanOneColon() {
|
||||||
|
var pageTitle = PageTitle("File:sample:a:b.jpg")
|
||||||
|
assertEquals("File:Sample:a:b.jpg", pageTitle.prefixedText)
|
||||||
|
assertEquals("File:Sample:a:b.jpg", pageTitle.displayText)
|
||||||
|
assertEquals("Sample:a:b.jpg", pageTitle.text)
|
||||||
|
|
||||||
|
pageTitle = PageTitle("File:sample:a:b:c.jpg")
|
||||||
|
assertEquals("File:Sample:a:b:c.jpg", pageTitle.prefixedText)
|
||||||
|
assertEquals("File:Sample:a:b:c.jpg", pageTitle.displayText)
|
||||||
|
assertEquals("Sample:a:b:c.jpg", pageTitle.text)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun keyShouldNotIncludeNamespace() {
|
||||||
|
val pageTitle = PageTitle("File:Sample.jpg")
|
||||||
|
assertEquals("Sample.jpg", pageTitle.text)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun capitalizeNamespace() {
|
||||||
|
val pageTitle = PageTitle("file:Sample.jpg")
|
||||||
|
assertEquals("File:Sample.jpg", pageTitle.prefixedText)
|
||||||
|
assertEquals("File:Sample.jpg", pageTitle.displayText)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun capitalizeKey() {
|
||||||
|
val pageTitle = PageTitle("File:sample.jpg")
|
||||||
|
assertEquals("File:Sample.jpg", pageTitle.prefixedText)
|
||||||
|
assertEquals("File:Sample.jpg", pageTitle.displayText)
|
||||||
|
assertEquals("Sample.jpg", pageTitle.text)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue