You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

160 lines
4.0 KiB

  1. require 'rails_helper'
  2. RSpec.describe StreamEntriesHelper, type: :helper do
  3. describe '#display_name' do
  4. it 'uses the display name when it exists' do
  5. account = Account.new(display_name: "Display", username: "Username")
  6. expect(helper.display_name(account)).to eq "Display"
  7. end
  8. it 'uses the username when display name is nil' do
  9. account = Account.new(display_name: nil, username: "Username")
  10. expect(helper.display_name(account)).to eq "Username"
  11. end
  12. end
  13. describe '#style_classes' do
  14. it do
  15. status = double(reblog?: false)
  16. classes = helper.style_classes(status, false, false, false)
  17. expect(classes).to eq 'entry'
  18. end
  19. it do
  20. status = double(reblog?: true)
  21. classes = helper.style_classes(status, false, false, false)
  22. expect(classes).to eq 'entry entry-reblog'
  23. end
  24. it do
  25. status = double(reblog?: false)
  26. classes = helper.style_classes(status, true, false, false)
  27. expect(classes).to eq 'entry entry-predecessor'
  28. end
  29. it do
  30. status = double(reblog?: false)
  31. classes = helper.style_classes(status, false, true, false)
  32. expect(classes).to eq 'entry entry-successor'
  33. end
  34. it do
  35. status = double(reblog?: false)
  36. classes = helper.style_classes(status, false, false, true)
  37. expect(classes).to eq 'entry entry-center'
  38. end
  39. it do
  40. status = double(reblog?: true)
  41. classes = helper.style_classes(status, true, true, true)
  42. expect(classes).to eq 'entry entry-predecessor entry-reblog entry-successor entry-center'
  43. end
  44. end
  45. describe '#microformats_classes' do
  46. it do
  47. status = double(reblog?: false)
  48. classes = helper.microformats_classes(status, false, false)
  49. expect(classes).to eq ''
  50. end
  51. it do
  52. status = double(reblog?: false)
  53. classes = helper.microformats_classes(status, true, false)
  54. expect(classes).to eq 'p-in-reply-to'
  55. end
  56. it do
  57. status = double(reblog?: false)
  58. classes = helper.microformats_classes(status, false, true)
  59. expect(classes).to eq 'p-comment'
  60. end
  61. it do
  62. status = double(reblog?: true)
  63. classes = helper.microformats_classes(status, true, false)
  64. expect(classes).to eq 'p-in-reply-to p-repost-of'
  65. end
  66. it do
  67. status = double(reblog?: true)
  68. classes = helper.microformats_classes(status, true, true)
  69. expect(classes).to eq 'p-in-reply-to p-repost-of p-comment'
  70. end
  71. end
  72. describe '#microformats_h_class' do
  73. it do
  74. status = double(reblog?: false)
  75. css_class = helper.microformats_h_class(status, false, false, false)
  76. expect(css_class).to eq 'h-entry'
  77. end
  78. it do
  79. status = double(reblog?: true)
  80. css_class = helper.microformats_h_class(status, false, false, false)
  81. expect(css_class).to eq 'h-cite'
  82. end
  83. it do
  84. status = double(reblog?: false)
  85. css_class = helper.microformats_h_class(status, true, false, false)
  86. expect(css_class).to eq 'h-cite'
  87. end
  88. it do
  89. status = double(reblog?: false)
  90. css_class = helper.microformats_h_class(status, false, true, false)
  91. expect(css_class).to eq 'h-cite'
  92. end
  93. it do
  94. status = double(reblog?: false)
  95. css_class = helper.microformats_h_class(status, false, false, true)
  96. expect(css_class).to eq ''
  97. end
  98. it do
  99. status = double(reblog?: true)
  100. css_class = helper.microformats_h_class(status, true, true, true)
  101. expect(css_class).to eq 'h-cite'
  102. end
  103. end
  104. describe '#rtl?' do
  105. it 'is false if text is empty' do
  106. expect(helper).not_to be_rtl ''
  107. end
  108. it 'is false if there are no right to left characters' do
  109. expect(helper).not_to be_rtl 'hello world'
  110. end
  111. it 'is false if right to left characters are fewer than 1/3 of total text' do
  112. expect(helper).not_to be_rtl 'hello ݟ world'
  113. end
  114. it 'is true if right to left characters are greater than 1/3 of total text' do
  115. expect(helper).to be_rtl 'aaݟ'
  116. end
  117. end
  118. end