(t *testing.T)
| 121 | } |
| 122 | |
| 123 | func TestObfuscate(t *testing.T) { |
| 124 | tests := []struct { |
| 125 | src string |
| 126 | seed string |
| 127 | dst string |
| 128 | }{ |
| 129 | { |
| 130 | src: "", |
| 131 | seed: "01234567890123456789012345678901", // 32 bytes. |
| 132 | dst: "", |
| 133 | }, |
| 134 | { |
| 135 | src: "hello", |
| 136 | seed: "01234567890123456789012345678901", // 32 bytes. |
| 137 | dst: "WFReX1s=", |
| 138 | }, |
| 139 | { |
| 140 | src: "你好!", |
| 141 | seed: "ENuef1JjSvQ6VPfgrB33T2mkshhwRRjp", // 32 bytes. |
| 142 | dst: "ofPVgMOMaw==", |
| 143 | }, |
| 144 | { |
| 145 | src: "Bytebase is a database tool for developers. Bytebase 是个数据库 DevOps 工具。", |
| 146 | seed: "01234567890123456789012345678901", // 32 bytes. |
| 147 | dst: "ckhGVlZURVIYUEMRUxNQVEJWWlhDVBJHW1paF15WQhFUVERWWFpGUkpKHhFwSkBQVFZLXBDXqpzQjZzRrYnWvJ7UiKAUcVNBd0lDEdeEkdCzgNu5sg==", |
| 148 | }, |
| 149 | { |
| 150 | src: `{ "type": "service_account", "project_id": "spanner-test-371702", "private_key_id": "klsdjfklasjdfas\nklsdjaflkajefjlaksdjf\nlsajdfklsjaldkfjkasldjf\nD PRIVATE KEY-----\n, "client_email": "test-768@spanner-test-371702.iam.gserviceaccount.com", "client_id": "102052620181224568340", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test-768%40spanner-test-371702.iam.gserviceaccount.com" }`, |
| 151 | seed: `aGgQpKjg7fuwNV6B31sIRQ1qm4Ttqw9s`, // 32 bytes. |
| 152 | dst: `GmdHcVI/ExdSRE9XbCVTMEVYECwNMFISAkE6AFNbGVNBZRcjHyEPBEM5HBNsbBZgQEESJzw0Q1wZUScAXEQOQlZ3VXNca0pHFRYHHjg3QidsWhYwDThVU1cUdh8dBF0ZBywLMAMhDgFWFSkZJTpFJllQFSU5MFsUC144FRoEXRkHGwk9AyoAA1ENGQQkN1omWFcZIjMiXRUHUggaNVdpISgRJgU1ayEibktYWmN7aiwfEVNpcDJdGAhaICsUGlgaDWVdcVI/DxRDS0JBdhZFMlJfHSwgfEUUHkB5R0ZGDkNTaQ4wHWUNFFIUAx4tM1chUF4GJyZ/Uh4AFnhUUVcbEA0uAj8EFAMDFVxVVX9mBHIGA0V7YmAJQF8GYEFHTwpHUWVLcVBrSAZCEh0oOyRfYAkRUSEmJUECVxt7FRIUVgYPMxR/FyQFAFsDWxQhOxktHF4SPCY5A14MQSAcU1sZU0FlEz4bLgQ4QhQcVXR2FCpHRQM6aH4eHgxBIBxDWV4cDiALNBE7AxQZBRoaYSJZKVZfUWVycRFTDEEgHC4HSxwXLgM0AhQSUgdfKhQrJEIdRkMfa2hxExkZQCQHS1gWBBYwSTYfJA0LUgcFHj14VS1eHhwoJyVZQ0JCZVsSEksHEmVLcVBrSARbDxAZOglOdwMILCo3I0UuGEY4VktXGxsVMxciSmRFEEARWxAhOVEuVlADICF/Uh4AGyYbExhNXBd2SDwVPwsDVhIUWDZjBnscRRY6JnwGR1URYEQCB1gdDyIVfAQuGRMaVUJGeWYEbFpQHmc1IlQDG103ERAUWhwUKRN/EyQHRRcb`, |
| 153 | }, |
| 154 | } |
| 155 | for _, test := range tests { |
| 156 | obfuscated := Obfuscate(test.src, test.seed) |
| 157 | require.Equal(t, test.dst, obfuscated) |
| 158 | ubobfuscated, err := Unobfuscate(obfuscated, test.seed) |
| 159 | require.NoError(t, err) |
| 160 | require.Equal(t, test.src, ubobfuscated) |
| 161 | } |
| 162 | } |
| 163 | |
| 164 | func TestNormalizeExternalURL(t *testing.T) { |
| 165 | tests := []struct { |
nothing calls this directly
no test coverage detected