package com.peachpasswords.ui.settings import com.peachpasswords.feedback.FeedbackState import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Test class SettingsFeedbackTest { @Test fun sanitizeFeedbackMessage_matchesBrowserLimitsAndEscaping() { val raw = " hello\u0000 & \"friends\"\nthere\u007F " val sanitized = sanitizeFeedbackMessage(raw) assertEquals("hello <peach> & "friends"\nthere", sanitized) assertFalse(sanitized.contains('\u0000')) assertFalse(sanitized.contains('\u007F')) assertTrue(sanitized.contains('\n')) } @Test fun sanitizeFeedbackMessage_capsAtBrowserLimitBeforeEscaping() { val raw = "x".repeat(MAX_FEEDBACK_MESSAGE_LENGTH + 50) val sanitized = sanitizeFeedbackMessage(raw) assertEquals(MAX_FEEDBACK_MESSAGE_LENGTH, sanitized.length) } @Test fun feedbackSubmitLabel_usesBrowserCopy() { assertEquals("Send", feedbackSubmitLabel(FeedbackState.Idle)) assertEquals("Sending...", feedbackSubmitLabel(FeedbackState.Sending)) assertEquals("Failed - try again", feedbackSubmitLabel(FeedbackState.Error("nope"))) } }