package libs import ( "strings" "testing" ) func TestEncodeFile(t *testing.T) { password := "testpassword" longText := "This is a test message." encryptedData, err := EncodeFile(password, longText) if err != nil { t.Fatalf("EncodeFile failed: %v", err) } if !strings.HasPrefix(encryptedData, "@") { t.Errorf("Encoded data does not start with '@': %s", encryptedData) } parts := strings.SplitN(encryptedData[1:], "@", 2) if len(parts) != 2 { t.Errorf("Encoded data format is incorrect: %s", encryptedData) } if !IsEncryptedFile(encryptedData) { t.Errorf("IsEncryptedFile returned false for valid encrypted data: %s", encryptedData) } } func TestDecodeFile(t *testing.T) { password := "testpassword" longText := "This is a test message." encryptedData, err := EncodeFile(password, longText) if err != nil { t.Fatalf("EncodeFile failed: %v", err) } decryptedText, err := DecodeFile(password, encryptedData) if err != nil { t.Fatalf("DecodeFile failed: %v", err) } if decryptedText != longText { t.Errorf("Decrypted text does not match original text. Expected: %v, Got: %v", longText, decryptedText) } } func TestIsEncryptedFile(t *testing.T) { password := "password" longText := "分地方大幅度" encryptedData, err := EncodeFile(password, longText) if err != nil { t.Fatalf("EncodeFile failed: %v", err) } if !IsEncryptedFile(encryptedData) { t.Errorf("IsEncryptedFile returned false for valid encrypted data: %s", encryptedData) } invalidData := "Invalid@Data" if IsEncryptedFile(invalidData) { t.Errorf("IsEncryptedFile returned true for invalid encrypted data: %s", invalidData) } }