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 <peach> & "friends"\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}