Brak opisu

WebViewShared.test.js 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. 'use strict';
  2. const WebViewShared = require('WebViewShared');
  3. describe('WebViewShared', () => {
  4. it('extracts the origin correctly', () => {
  5. expect(WebViewShared.extractOrigin('http://facebook.com')).toBe(
  6. 'http://facebook.com',
  7. );
  8. expect(WebViewShared.extractOrigin('https://facebook.com')).toBe(
  9. 'https://facebook.com',
  10. );
  11. expect(WebViewShared.extractOrigin('http://facebook.com:8081')).toBe(
  12. 'http://facebook.com:8081',
  13. );
  14. expect(WebViewShared.extractOrigin('ftp://facebook.com')).toBe(
  15. 'ftp://facebook.com',
  16. );
  17. expect(WebViewShared.extractOrigin('myweirdscheme://')).toBe(
  18. 'myweirdscheme://',
  19. );
  20. expect(WebViewShared.extractOrigin('http://facebook.com/')).toBe(
  21. 'http://facebook.com',
  22. );
  23. expect(WebViewShared.extractOrigin('http://facebook.com/longerurl')).toBe(
  24. 'http://facebook.com',
  25. );
  26. expect(
  27. WebViewShared.extractOrigin('http://facebook.com/http://facebook.com'),
  28. ).toBe('http://facebook.com');
  29. expect(
  30. WebViewShared.extractOrigin('http://facebook.com//http://facebook.com'),
  31. ).toBe('http://facebook.com');
  32. expect(
  33. WebViewShared.extractOrigin('http://facebook.com//http://facebook.com//'),
  34. ).toBe('http://facebook.com');
  35. expect(WebViewShared.extractOrigin('about:blank')).toBe('about:blank');
  36. });
  37. it('rejects bad urls', () => {
  38. expect(WebViewShared.extractOrigin('a/b')).toBeNull();
  39. expect(WebViewShared.extractOrigin('a//b')).toBeNull();
  40. });
  41. it('creates a whitelist regex correctly', () => {
  42. expect(WebViewShared.originWhitelistToRegex('http://*')).toBe('http://.*');
  43. expect(WebViewShared.originWhitelistToRegex('*')).toBe('.*');
  44. expect(WebViewShared.originWhitelistToRegex('*//test')).toBe('.*//test');
  45. expect(WebViewShared.originWhitelistToRegex('*/*')).toBe('.*/.*');
  46. expect(WebViewShared.originWhitelistToRegex('*.com')).toBe('.*\\.com');
  47. });
  48. });