checks_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package main
  2. import (
  3. "testing"
  4. )
  5. func TestCheckRegex(t *testing.T) {
  6. var results []string
  7. checks := map[string]int{
  8. "github.com": 0,
  9. "github.com/user/": 0,
  10. "github.com/user -- Sys": 0,
  11. "github_api_client = \"sample key\"\naws=afewafewafewafewaf": 2,
  12. "aws=\"afewafewafewafewaf\"": 1,
  13. "aws\"afewafewafewafewaf\"": 0,
  14. "heroku := \"afewafewafewafewaf\"": 1,
  15. "heroku_client_secret := \"afewafewafewafewaf\"": 1,
  16. "reddit_api_secreit = \"Fwe4fa431FgklreF\"": 1,
  17. }
  18. for k, v := range checks {
  19. results = checkRegex(k)
  20. if v != len(results) {
  21. t.Errorf("regexCheck failed on string %s", k)
  22. }
  23. }
  24. }
  25. func TestEntropy(t *testing.T) {
  26. var enoughEntropy bool
  27. checks := map[string]bool{
  28. "heroku_client_secret = simple": false,
  29. "reddit_api_secret = \"Fwe4fa431FgklreF\"": true,
  30. "aws_secret= \"AKIAIMNOJVGFDXXXE4OA\"": true,
  31. }
  32. for k, v := range checks {
  33. enoughEntropy = checkShannonEntropy(k, 70)
  34. if v != enoughEntropy {
  35. t.Errorf("checkEntropy failed for %s. Expected %t, got %t", k, v, enoughEntropy)
  36. }
  37. }
  38. }
  39. func TestStopWords(t *testing.T) {
  40. if containsStopWords("aws_secret=settings.AWS_SECRET") != true {
  41. t.Errorf("checkStopWords Failed")
  42. }
  43. }