2
0

bidi_spec.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. * @licstart The following is the entire license notice for the
  3. * JavaScript code in this page
  4. *
  5. * Copyright 2022 Mozilla Foundation
  6. *
  7. * Licensed under the Apache License, Version 2.0 (the "License");
  8. * you may not use this file except in compliance with the License.
  9. * You may obtain a copy of the License at
  10. *
  11. * http://www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing, software
  14. * distributed under the License is distributed on an "AS IS" BASIS,
  15. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16. * See the License for the specific language governing permissions and
  17. * limitations under the License.
  18. *
  19. * @licend The above is the entire license notice for the
  20. * JavaScript code in this page
  21. */
  22. "use strict";
  23. var _bidi = require("../../core/bidi.js");
  24. describe("bidi", function () {
  25. it("should mark text as LTR if there's only LTR-characters, " + "when the string is very short", function () {
  26. const str = "foo";
  27. const bidiText = (0, _bidi.bidi)(str, -1, false);
  28. expect(bidiText.str).toEqual("foo");
  29. expect(bidiText.dir).toEqual("ltr");
  30. });
  31. it("should mark text as LTR if there's only LTR-characters", function () {
  32. const str = "Lorem ipsum dolor sit amet, consectetur adipisicing elit.";
  33. const bidiText = (0, _bidi.bidi)(str, -1, false);
  34. expect(bidiText.str).toEqual("Lorem ipsum dolor sit amet, consectetur adipisicing elit.");
  35. expect(bidiText.dir).toEqual("ltr");
  36. });
  37. it("should mark text as RTL if more than 30% of text is RTL", function () {
  38. const test = "\u0645\u0635\u0631 Egypt";
  39. const result = "Egypt \u0631\u0635\u0645";
  40. const bidiText = (0, _bidi.bidi)(test, -1, false);
  41. expect(bidiText.str).toEqual(result);
  42. expect(bidiText.dir).toEqual("rtl");
  43. });
  44. it("should mark text as LTR if less than 30% of text is RTL", function () {
  45. const test = "Egypt is known as \u0645\u0635\u0631 in Arabic.";
  46. const result = "Egypt is known as \u0631\u0635\u0645 in Arabic.";
  47. const bidiText = (0, _bidi.bidi)(test, -1, false);
  48. expect(bidiText.str).toEqual(result);
  49. expect(bidiText.dir).toEqual("ltr");
  50. });
  51. it("should mark text as RTL if less than 30% of text is RTL, " + "when the string is very short (issue 11656)", function () {
  52. const str = "()\u05d1(";
  53. const bidiText = (0, _bidi.bidi)(str, -1, false);
  54. expect(bidiText.str).toEqual("(\u05d1)(");
  55. expect(bidiText.dir).toEqual("rtl");
  56. });
  57. });