tests.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. from __future__ import absolute_import, print_function
  2. from sentry.testutils import TransactionTestCase, RelayStoreHelper
  3. from sentry.testutils.helpers.datetime import iso_format, before_now
  4. class SentryRemoteTest(RelayStoreHelper, TransactionTestCase):
  5. # used to be test_ungzipped_data
  6. def test_simple_data(self):
  7. event_data = {"message": "hello", "timestamp": iso_format(before_now(seconds=1))}
  8. event = self.post_and_retrieve_event(event_data)
  9. assert event.message == "hello"
  10. def test_csp(self):
  11. event_data = {
  12. "csp-report": {
  13. "document-uri": "https://example.com/foo/bar",
  14. "referrer": "https://www.google.com/",
  15. "violated-directive": "default-src self",
  16. "original-policy": "default-src self; report-uri /csp-hotline.php",
  17. "blocked-uri": "http://evilhackerscripts.com",
  18. }
  19. }
  20. event = self.post_and_retrieve_security_report(event_data)
  21. assert event.message == "Blocked 'default-src' from 'evilhackerscripts.com'"
  22. def test_hpkp(self):
  23. event_data = {
  24. "date-time": "2014-04-06T13:00:50Z",
  25. "hostname": "www.example.com",
  26. "port": 443,
  27. "effective-expiration-date": "2014-05-01T12:40:50Z",
  28. "include-subdomains": False,
  29. "served-certificate-chain": [
  30. "-----BEGIN CERTIFICATE-----\n MIIEBDCCAuygBQUAMEIxCzAJBgNVBAYTAlVT\n -----END CERTIFICATE-----"
  31. ],
  32. "validated-certificate-chain": [
  33. "-----BEGIN CERTIFICATE-----\n MIIEBDCCAuygAwIBAgIDCzAJBgNVBAYTAlVT\n -----END CERTIFICATE-----"
  34. ],
  35. "known-pins": [
  36. 'pin-sha256="d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM="',
  37. 'pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g="',
  38. ],
  39. }
  40. event = self.post_and_retrieve_security_report(event_data)
  41. assert event.message == "Public key pinning validation failed for 'www.example.com'"
  42. assert event.group.title == "Public key pinning validation failed for 'www.example.com'"
  43. def test_expect_ct(self):
  44. event_data = {
  45. "expect-ct-report": {
  46. "date-time": "2014-04-06T13:00:50Z",
  47. "hostname": "www.example.com",
  48. "port": 443,
  49. "effective-expiration-date": "2014-05-01T12:40:50Z",
  50. "served-certificate-chain": [
  51. "-----BEGIN CERTIFICATE-----\nABC\n-----END CERTIFICATE-----"
  52. ],
  53. "validated-certificate-chain": [
  54. "-----BEGIN CERTIFICATE-----\nCDE\n-----END CERTIFICATE-----"
  55. ],
  56. "scts": [
  57. {
  58. "version": 1,
  59. "status": "invalid",
  60. "source": "embedded",
  61. "serialized_sct": "ABCD==",
  62. }
  63. ],
  64. }
  65. }
  66. event = self.post_and_retrieve_security_report(event_data)
  67. assert event.message == "Expect-CT failed for 'www.example.com'"
  68. assert event.group.title == "Expect-CT failed for 'www.example.com'"
  69. def test_expect_staple(self):
  70. event_data = {
  71. "expect-staple-report": {
  72. "date-time": "2014-04-06T13:00:50Z",
  73. "hostname": "www.example.com",
  74. "port": 443,
  75. "response-status": "ERROR_RESPONSE",
  76. "cert-status": "REVOKED",
  77. "effective-expiration-date": "2014-05-01T12:40:50Z",
  78. "served-certificate-chain": [
  79. "-----BEGIN CERTIFICATE-----\nABC\n-----END CERTIFICATE-----"
  80. ],
  81. "validated-certificate-chain": [
  82. "-----BEGIN CERTIFICATE-----\nCDE\n-----END CERTIFICATE-----"
  83. ],
  84. }
  85. }
  86. event = self.post_and_retrieve_security_report(event_data)
  87. assert event.message == "Expect-Staple failed for 'www.example.com'"
  88. assert event.group.title == "Expect-Staple failed for 'www.example.com'"