httpcors_test.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. // Copyright 2017 The Closure Library Authors. All Rights Reserved.
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS-IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. goog.module('goog.net.rpc.HttpCorsTest');
  15. goog.setTestOnly('goog.net.rpc.HttpCorsTest');
  16. var GoogUri = goog.require('goog.Uri');
  17. var HttpCors = goog.require('goog.net.rpc.HttpCors');
  18. var testSuite = goog.require('goog.testing.testSuite');
  19. testSuite({
  20. testSingleHeader: function() {
  21. var headers = {'foo': 'bar'};
  22. var value = HttpCors.generateHttpHeadersOverwriteParam(headers);
  23. assertEquals('foo:bar\r\n', value);
  24. var encoded_value =
  25. HttpCors.generateEncodedHttpHeadersOverwriteParam(headers);
  26. assertEquals('foo%3Abar%0D%0A', encoded_value);
  27. },
  28. testMultipleHeaders: function() {
  29. var headers = {'foo1': 'bar1', 'foo2': 'bar2'};
  30. var value = HttpCors.generateHttpHeadersOverwriteParam(headers);
  31. assertEquals('foo1:bar1\r\nfoo2:bar2\r\n', value);
  32. var encoded_value =
  33. HttpCors.generateEncodedHttpHeadersOverwriteParam(headers);
  34. assertEquals('foo1%3Abar1%0D%0Afoo2%3Abar2%0D%0A', encoded_value);
  35. },
  36. testSetUrl: function() {
  37. var headers = {'foo': 'bar'};
  38. var urlString = '/example.com/';
  39. var newUrlString = HttpCors.setHttpHeadersWithOverwriteParam(
  40. urlString, '$httpHeaders', headers);
  41. assertEquals('/example.com/?%24httpHeaders=foo%3Abar%0D%0A', newUrlString);
  42. var url = new GoogUri(urlString);
  43. var newUrl =
  44. HttpCors.setHttpHeadersWithOverwriteParam(url, '$httpHeaders', headers);
  45. assertEquals(
  46. '/example.com/?%24httpHeaders=foo%3Abar%0D%0A', newUrl.toString());
  47. },
  48. testSetUrlAppend: function() {
  49. var headers = {'foo': 'bar'};
  50. var urlString = '/example.com/?abc=12';
  51. var newUrlString = HttpCors.setHttpHeadersWithOverwriteParam(
  52. urlString, '$httpHeaders', headers);
  53. assertEquals(
  54. '/example.com/?abc=12&%24httpHeaders=foo%3Abar%0D%0A', newUrlString);
  55. var url = new GoogUri(urlString);
  56. var newUrl =
  57. HttpCors.setHttpHeadersWithOverwriteParam(url, '$httpHeaders', headers);
  58. assertEquals(
  59. '/example.com/?abc=12&%24httpHeaders=foo%3Abar%0D%0A',
  60. newUrl.toString());
  61. },
  62. testSetUrlMultiHeaders: function() {
  63. var headers = {'foo1': 'bar1', 'foo2': 'bar2'};
  64. var urlString = '/example.com/';
  65. var newUrlString = HttpCors.setHttpHeadersWithOverwriteParam(
  66. urlString, '$httpHeaders', headers);
  67. assertEquals(
  68. '/example.com/?%24httpHeaders=foo1%3Abar1%0D%0Afoo2%3Abar2%0D%0A',
  69. newUrlString);
  70. var url = new GoogUri(urlString);
  71. var newUrl =
  72. HttpCors.setHttpHeadersWithOverwriteParam(url, '$httpHeaders', headers);
  73. assertEquals(
  74. '/example.com/?%24httpHeaders=foo1%3Abar1%0D%0Afoo2%3Abar2%0D%0A',
  75. newUrl.toString());
  76. },
  77. testSetUrlEmptyHeaders: function() {
  78. var headers = {};
  79. var urlString = '/example.com/';
  80. var newUrlString = HttpCors.setHttpHeadersWithOverwriteParam(
  81. urlString, '$httpHeaders', headers);
  82. assertEquals('/example.com/', newUrlString);
  83. var url = new GoogUri(urlString);
  84. var newUrl =
  85. HttpCors.setHttpHeadersWithOverwriteParam(url, '$httpHeaders', headers);
  86. assertEquals('/example.com/', newUrl.toString());
  87. }
  88. });