SettingsFeedbackTest.kt

1.2 KB · raw

1package com.peachpasswords.ui.settings23import com.peachpasswords.feedback.FeedbackState4import org.junit.Assert.assertEquals5import org.junit.Assert.assertFalse6import org.junit.Assert.assertTrue7import org.junit.Test89class SettingsFeedbackTest {1011    @Test12    fun sanitizeFeedbackMessage_matchesBrowserLimitsAndEscaping() {13        val raw = "  hello\u0000 <peach> & \"friends\"\nthere\u007F  "1415        val sanitized = sanitizeFeedbackMessage(raw)1617        assertEquals("hello &lt;peach&gt; &amp; &quot;friends&quot;\nthere", sanitized)18        assertFalse(sanitized.contains('\u0000'))19        assertFalse(sanitized.contains('\u007F'))20        assertTrue(sanitized.contains('\n'))21    }2223    @Test24    fun sanitizeFeedbackMessage_capsAtBrowserLimitBeforeEscaping() {25        val raw = "x".repeat(MAX_FEEDBACK_MESSAGE_LENGTH + 50)2627        val sanitized = sanitizeFeedbackMessage(raw)2829        assertEquals(MAX_FEEDBACK_MESSAGE_LENGTH, sanitized.length)30    }3132    @Test33    fun feedbackSubmitLabel_usesBrowserCopy() {34        assertEquals("Send", feedbackSubmitLabel(FeedbackState.Idle))35        assertEquals("Sending...", feedbackSubmitLabel(FeedbackState.Sending))36        assertEquals("Failed - try again", feedbackSubmitLabel(FeedbackState.Error("nope")))37    }38}