Merge pull request #6585 from nextcloud/nullColor

parseColor("") throws IndexOutOfBounds, so catch all Exceptions is better
This commit is contained in:
Tobias Kaminsky 2020-07-31 08:13:28 +02:00 committed by GitHub
commit 6469fdb658
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 78 additions and 1 deletions

View file

@ -0,0 +1,77 @@
/*
*
* Nextcloud Android client application
*
* @author Tobias Kaminsky
* Copyright (C) 2020 Tobias Kaminsky
* Copyright (C) 2020 Nextcloud GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.owncloud.android.authentication
import android.graphics.Color
import org.junit.Assert
import org.junit.Test
class AuthenticatorActivityIT {
@Test(expected = IndexOutOfBoundsException::class)
fun testException() {
Color.parseColor("")
}
@Test
fun tryCatch() {
val color = try {
Color.parseColor("1")
} catch (e: Exception) {
Color.BLACK
}
Assert.assertNotNull(color)
}
@Test
fun tryCatch2() {
val color = try {
Color.parseColor("")
} catch (e: Exception) {
Color.BLACK
}
Assert.assertNotNull(color)
}
@Test
fun tryCatch3() {
val color = try {
Color.parseColor(null)
} catch (e: Exception) {
Color.BLACK
}
Assert.assertNotNull(color)
}
@Test
fun tryCatch4() {
val color = try {
Color.parseColor("abc")
} catch (e: Exception) {
Color.BLACK
}
Assert.assertNotNull(color)
}
}

View file

@ -906,7 +906,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
OCCapability capability = (OCCapability) remoteOperationResult.getData().get(0);
try {
primaryColor = Color.parseColor(capability.getServerColor());
} catch (IllegalArgumentException e) {
} catch (Exception e) {
// falls back to primary color
}
}