dom_utils_spec.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /* Copyright 2017 Mozilla Foundation
  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. */
  15. 'use strict';
  16. var displayDOMUtils = require('../../display/dom_utils.js');
  17. var displayGlobal = require('../../display/global.js');
  18. var PDFJS = displayGlobal.PDFJS;
  19. var getFilenameFromUrl = displayDOMUtils.getFilenameFromUrl;
  20. var LinkTarget = displayDOMUtils.LinkTarget;
  21. var isExternalLinkTargetSet = displayDOMUtils.isExternalLinkTargetSet;
  22. describe('dom_utils', function () {
  23. describe('getFilenameFromUrl', function () {
  24. it('should get the filename from an absolute URL', function () {
  25. var url = 'http://server.org/filename.pdf';
  26. var result = getFilenameFromUrl(url);
  27. var expected = 'filename.pdf';
  28. expect(result).toEqual(expected);
  29. });
  30. it('should get the filename from a relative URL', function () {
  31. var url = '../../filename.pdf';
  32. var result = getFilenameFromUrl(url);
  33. var expected = 'filename.pdf';
  34. expect(result).toEqual(expected);
  35. });
  36. });
  37. describe('isExternalLinkTargetSet', function () {
  38. var savedExternalLinkTarget;
  39. beforeAll(function (done) {
  40. savedExternalLinkTarget = PDFJS.externalLinkTarget;
  41. done();
  42. });
  43. afterAll(function () {
  44. PDFJS.externalLinkTarget = savedExternalLinkTarget;
  45. });
  46. it('handles the predefined LinkTargets', function () {
  47. for (var key in LinkTarget) {
  48. var linkTarget = LinkTarget[key];
  49. PDFJS.externalLinkTarget = linkTarget;
  50. expect(isExternalLinkTargetSet()).toEqual(!!linkTarget);
  51. }
  52. });
  53. it('handles incorrect LinkTargets', function () {
  54. var targets = [true, '', false, -1, '_blank', null];
  55. for (var i = 0, ii = targets.length; i < ii; i++) {
  56. var linkTarget = targets[i];
  57. PDFJS.externalLinkTarget = linkTarget;
  58. expect(isExternalLinkTargetSet()).toEqual(false);
  59. }
  60. });
  61. });
  62. });