Skip to content

Commit fa992d9

Browse files
committed
Add unit tests
1 parent 7e66fc9 commit fa992d9

File tree

2 files changed

+73
-2
lines changed

2 files changed

+73
-2
lines changed

aztec/src/main/kotlin/org/wordpress/aztec/AztecText.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ import android.text.TextWatcher
4343
import android.text.style.SuggestionSpan
4444
import android.util.AttributeSet
4545
import android.util.DisplayMetrics
46-
import android.util.Log
4746
import android.view.KeyEvent
4847
import android.view.LayoutInflater
4948
import android.view.MotionEvent
@@ -346,7 +345,6 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
346345
}
347346

348347
fun setCalypsoMode(isCompatibleWithCalypso: Boolean) {
349-
Log.d("testing", "for the sake of testing")
350348
isInCalypsoMode = isCompatibleWithCalypso
351349
}
352350

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package org.wordpress.aztec
2+
3+
import org.junit.Assert.*
4+
import org.junit.Before
5+
import org.junit.Test
6+
import org.junit.runner.RunWith
7+
import org.junit.runners.JUnit4
8+
9+
@RunWith(JUnit4::class)
10+
class AztecContentChangeWatcherTest {
11+
private lateinit var aztecContentChangeWatcher: AztecContentChangeWatcher
12+
@Before
13+
fun setUp() {
14+
aztecContentChangeWatcher = AztecContentChangeWatcher()
15+
}
16+
17+
@Test
18+
fun `notifies registered observer`() {
19+
// Given
20+
var contentChanged = false
21+
setupRegisteredObserver {
22+
contentChanged = true
23+
}
24+
25+
// When
26+
aztecContentChangeWatcher.notifyContentChanged()
27+
28+
// Then
29+
assertTrue(contentChanged)
30+
}
31+
32+
@Test
33+
fun `does not notify unregistered observer`() {
34+
// Given
35+
var contentChanged = false
36+
val observer = setupRegisteredObserver {
37+
contentChanged = true
38+
}
39+
40+
// When
41+
aztecContentChangeWatcher.unregisterObserver(observer)
42+
aztecContentChangeWatcher.notifyContentChanged()
43+
44+
// Then
45+
assertFalse(contentChanged)
46+
}
47+
48+
@Test
49+
fun `observer is garbage collected and reference is lost`() {
50+
// Given
51+
var contentChanged = false
52+
setupRegisteredObserver {
53+
contentChanged = true
54+
}
55+
System.gc()
56+
57+
// When
58+
aztecContentChangeWatcher.notifyContentChanged()
59+
60+
// Then
61+
assertFalse(contentChanged)
62+
}
63+
64+
private fun setupRegisteredObserver(onContentChanged: () -> Unit): AztecContentChangeWatcher.AztecTextChangeObserver {
65+
val observer = object : AztecContentChangeWatcher.AztecTextChangeObserver {
66+
override fun onContentChanged() {
67+
onContentChanged()
68+
}
69+
}
70+
aztecContentChangeWatcher.registerObserver(observer)
71+
return observer
72+
}
73+
}

0 commit comments

Comments
 (0)