Richard Pospesel pushed to branch android-components-102.0.14-12.0-1 at The Tor Project / Applications / android-components

Commits:

2 changed files:

Changes:

  • components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/BrowserToolbar.kt
    ... ... @@ -75,7 +75,8 @@ class BrowserToolbar @JvmOverloads constructor(
    75 75
         defStyleAttr: Int = 0
    
    76 76
     ) : ViewGroup(context, attrs, defStyleAttr), Toolbar {
    
    77 77
         private var state: State = State.DISPLAY
    
    78
    -    private var searchTerms: String = ""
    
    78
    +    @VisibleForTesting
    
    79
    +    internal var searchTerms: String = ""
    
    79 80
         private var urlCommitListener: ((String) -> Boolean)? = null
    
    80 81
     
    
    81 82
         /**
    
    ... ... @@ -219,11 +220,11 @@ class BrowserToolbar @JvmOverloads constructor(
    219 220
         }
    
    220 221
     
    
    221 222
         override fun setSearchTerms(searchTerms: String) {
    
    223
    +        this.searchTerms = searchTerms.take(MAX_URI_LENGTH)
    
    224
    +
    
    222 225
             if (state == State.EDIT) {
    
    223
    -            edit.editSuggestion(searchTerms)
    
    226
    +            edit.editSuggestion(this.searchTerms)
    
    224 227
             }
    
    225
    -
    
    226
    -        this.searchTerms = searchTerms
    
    227 228
         }
    
    228 229
     
    
    229 230
         override fun displayProgress(progress: Int) {
    

  • components/browser/toolbar/src/test/java/mozilla/components/browser/toolbar/BrowserToolbarTest.kt
    ... ... @@ -152,6 +152,38 @@ class BrowserToolbarTest {
    152 152
             assertEquals("c".repeat(MAX_URI_LENGTH - 1), capturedValues[2])
    
    153 153
         }
    
    154 154
     
    
    155
    +    @Test
    
    156
    +    fun `searchTerms is truncated in case it is greater than MAX_URI_LENGTH`() {
    
    157
    +        val toolbar = BrowserToolbar(testContext)
    
    158
    +        toolbar.edit = spy(toolbar.edit)
    
    159
    +        toolbar.editMode()
    
    160
    +
    
    161
    +        toolbar.setSearchTerms("a".repeat(MAX_URI_LENGTH + 1))
    
    162
    +
    
    163
    +        // Value was too long and should've been truncated
    
    164
    +        assertEquals(toolbar.searchTerms.length, MAX_URI_LENGTH)
    
    165
    +        verify(toolbar.edit).editSuggestion("a".repeat(MAX_URI_LENGTH))
    
    166
    +    }
    
    167
    +
    
    168
    +    @Test
    
    169
    +    fun `searchTerms is not truncated in case it is equal or less than MAX_URI_LENGTH`() {
    
    170
    +        val toolbar = BrowserToolbar(testContext)
    
    171
    +        toolbar.edit = spy(toolbar.edit)
    
    172
    +        toolbar.editMode()
    
    173
    +
    
    174
    +        toolbar.setSearchTerms("b".repeat(MAX_URI_LENGTH))
    
    175
    +
    
    176
    +        // Value should be the same as before
    
    177
    +        assertEquals(toolbar.searchTerms.length, MAX_URI_LENGTH)
    
    178
    +        verify(toolbar.edit).editSuggestion("b".repeat(MAX_URI_LENGTH))
    
    179
    +
    
    180
    +        toolbar.setSearchTerms("c".repeat(MAX_URI_LENGTH - 1))
    
    181
    +
    
    182
    +        // Value should be the same as before
    
    183
    +        assertEquals(toolbar.searchTerms.length, MAX_URI_LENGTH - 1)
    
    184
    +        verify(toolbar.edit).editSuggestion("c".repeat(MAX_URI_LENGTH - 1))
    
    185
    +    }
    
    186
    +
    
    155 187
         @Test
    
    156 188
         fun `last URL will be forwarded to edit toolbar when switching mode`() {
    
    157 189
             val toolbar = BrowserToolbar(testContext)