ui_bibz 3.0.0.alpha10 → 3.0.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +8 -0
  3. data/.github/FUNDING.yml +1 -0
  4. data/.github/workflows/ci.yml +28 -0
  5. data/Gemfile.lock +35 -30
  6. data/README.md +3 -4
  7. data/lib/ui_bibz/concerns/models/searchable.rb +1 -1
  8. data/lib/ui_bibz/infos.rb +3 -3
  9. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_text_field_input.rb +1 -1
  10. data/lib/ui_bibz/ui/concerns/html_concern.rb +8 -2
  11. data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +1 -1
  12. data/lib/ui_bibz/ui/core/forms/buttons/button.rb +4 -4
  13. data/lib/ui_bibz/ui/core/forms/buttons/button_link.rb +1 -1
  14. data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +26 -6
  15. data/lib/ui_bibz/ui/core/forms/dropdowns/split_dropdown.rb +1 -1
  16. data/lib/ui_bibz/ui/core/forms/numbers/formula_field.rb +1 -1
  17. data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +35 -5
  18. data/lib/ui_bibz/ui/core/lists/list_group.rb +1 -1
  19. data/lib/ui_bibz/ui/core/navigations/components/nav_dropdown.rb +1 -1
  20. data/lib/ui_bibz/ui/core/navigations/components/nav_link_link.rb +1 -1
  21. data/lib/ui_bibz/ui/core/navigations/components/nav_link_span.rb +1 -1
  22. data/lib/ui_bibz/ui/core/navigations/components/nav_text.rb +1 -1
  23. data/lib/ui_bibz/ui/core/navigations/link.rb +1 -1
  24. data/lib/ui_bibz/ui/core/navigations/nav.rb +1 -1
  25. data/lib/ui_bibz/ui/core/navigations/navbar.rb +2 -2
  26. data/lib/ui_bibz/ui/core/navigations/toolbar.rb +1 -1
  27. data/lib/ui_bibz/ui/core/notifications/components/alert_header.rb +1 -1
  28. data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +5 -5
  29. data/lib/ui_bibz/ui/core/notifications/toast.rb +1 -1
  30. data/lib/ui_bibz/ui/core/windows/components/modal_header.rb +1 -1
  31. data/lib/ui_bibz/ui/core/windows/modal.rb +2 -2
  32. data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +6 -6
  33. data/test/simple_form_test.rb +4 -4
  34. data/test/ui/core/boxes/card_test.rb +1 -1
  35. data/test/ui/core/forms/buttons/button_group_test.rb +1 -1
  36. data/test/ui/core/forms/buttons/button_link_test.rb +1 -1
  37. data/test/ui/core/forms/buttons/button_test.rb +6 -6
  38. data/test/ui/core/forms/dropdowns/dropdown_test.rb +5 -5
  39. data/test/ui/core/forms/numbers/formula_field_test.rb +1 -1
  40. data/test/ui/core/forms/selects/multi_select_field_test.rb +3 -3
  41. data/test/ui/core/forms/surrounds/surround_field_test.rb +2 -2
  42. data/test/ui/core/lists/list_group_test.rb +1 -1
  43. data/test/ui/core/navigations/link_test.rb +1 -1
  44. data/test/ui/core/navigations/nav_test.rb +2 -2
  45. data/test/ui/core/navigations/navbar_test.rb +4 -4
  46. data/test/ui/core/navigations/tab_group_test.rb +5 -5
  47. data/test/ui/core/navigations/toolbar_test.rb +1 -1
  48. data/test/ui/core/notifications/alert_test.rb +1 -1
  49. data/test/ui/core/notifications/spinner_test.rb +1 -1
  50. data/test/ui/core/notifications/toast_test.rb +1 -1
  51. data/test/ui/core/windows/modal_test.rb +2 -2
  52. data/test/ui/ux/containers/panel_test.rb +4 -4
  53. data/ui_bibz.gemspec +2 -1
  54. metadata +21 -6
  55. data/.github/workflows/ruby.yml +0 -23
@@ -90,7 +90,7 @@ module UiBibz::Ui::Core::Lists
90
90
  options = options.merge({ tag_type: @options[:tag_type] }) unless @options[:tag_type].nil?
91
91
 
92
92
  @lists << if tapped?(block)
93
- content = (content || {}).merge(tap: true)
93
+ content = (content || {}).merge(options)
94
94
  UiBibz::Ui::Core::Lists::Components::List.new(content, options, html_options).tap(&block).render
95
95
  else
96
96
  UiBibz::Ui::Core::Lists::Components::List.new(content, options, html_options, &block).render
@@ -60,7 +60,7 @@ module UiBibz::Ui::Core::Navigations
60
60
  end
61
61
 
62
62
  def link_html
63
- content_tag :a, button_content, class: join_classes(size, state, 'dropdown-toggle', 'nav-link'), href: '#', 'data-toggle' => 'dropdown', 'aria-expanded' => false
63
+ content_tag :a, button_content, class: join_classes(size, state, 'dropdown-toggle', 'nav-link'), href: '#', 'data-bs-toggle' => 'dropdown', 'aria-expanded' => false
64
64
  end
65
65
  end
66
66
  end
@@ -40,7 +40,7 @@ module UiBibz::Ui::Core::Navigations
40
40
  end
41
41
 
42
42
  def component_html_options
43
- html_tag_base = { 'data-toggle' => 'tab', role: 'tab' }
43
+ html_tag_base = { 'data-bs-toggle' => 'tab', role: 'tab' }
44
44
  case options[:nav_type]
45
45
  when 'nav-tabs'
46
46
  html_tag_base
@@ -36,7 +36,7 @@ module UiBibz::Ui::Core::Navigations
36
36
  end
37
37
 
38
38
  def component_html_options
39
- { 'data-toggle' => 'tab', role: 'tab' }
39
+ { 'data-bs-toggle' => 'tab', role: 'tab' }
40
40
  end
41
41
 
42
42
  def component_html_data
@@ -40,7 +40,7 @@ module UiBibz::Ui::Core::Navigations
40
40
  end
41
41
 
42
42
  def component_html_options
43
- options[:nav_type] == 'nav-tabs' ? { 'data-toggle' => 'tab', role: 'tab' } : {}
43
+ options[:nav_type] == 'nav-tabs' ? { 'data-bs-toggle' => 'tab', role: 'tab' } : {}
44
44
  end
45
45
  end
46
46
  end
@@ -58,7 +58,7 @@ module UiBibz::Ui::Core::Navigations
58
58
  def collapse
59
59
  {
60
60
  role: 'button',
61
- data: { toggle: :collapse },
61
+ data: { "bs-toggle": :collapse },
62
62
  aria: {
63
63
  controls: options[:collapse],
64
64
  expanded: options[:active_collapse].nil? ? false : options[:active_collapse]
@@ -109,7 +109,7 @@ module UiBibz::Ui::Core::Navigations
109
109
  end
110
110
 
111
111
  def spacer(num = 'auto')
112
- kls = " mr-#{num}"
112
+ kls = " me-#{num}"
113
113
  @items.last.html_options[:class].nil? ? @items.last.html_options[:class] = kls : @items.last.html_options[:class] << kls
114
114
  end
115
115
 
@@ -125,7 +125,7 @@ module UiBibz::Ui::Core::Navigations
125
125
  end
126
126
 
127
127
  def spacer(num = 'auto')
128
- kls = " mr-#{num}"
128
+ kls = " me-#{num}"
129
129
  @items.last.html_options[:class].nil? ? @items.last.html_options[:class] = kls : @items.last.html_options[:class] << kls
130
130
  end
131
131
 
@@ -163,7 +163,7 @@ module UiBibz::Ui::Core::Navigations
163
163
  end
164
164
 
165
165
  def navbar_toggle_button_html
166
- content_tag :button, '☰', class: 'navbar-toggler hidden-sm-up', type: :button, data: { toggle: 'collapse', target: "##{id}" }
166
+ content_tag :button, '☰', class: 'navbar-toggler hidden-sm-up', type: :button, data: { "bs-toggle": 'collapse', target: "##{id}" }
167
167
  end
168
168
 
169
169
  def expand_size
@@ -72,7 +72,7 @@ module UiBibz::Ui::Core::Navigations
72
72
  end
73
73
 
74
74
  def spacer(num = 'auto')
75
- kls = "mr-#{num}"
75
+ kls = "me-#{num}"
76
76
  @items.last.html_options['class'] = join_classes(@items.last.html_options.delete(:class), @items.last.html_options[:class], kls)
77
77
  end
78
78
 
@@ -54,7 +54,7 @@ module UiBibz::Ui::Core::Notifications::Components
54
54
  end
55
55
 
56
56
  def close_html
57
- content_tag :button, '', type: 'button', class: 'btn-close', 'data-dismiss' => 'alert', 'aria-label' => 'Close'
57
+ content_tag :button, '', type: 'button', class: 'btn-close', 'data-bs-dismiss' => 'alert', 'aria-label' => 'Close'
58
58
  end
59
59
  end
60
60
  end
@@ -36,9 +36,9 @@ module UiBibz::Ui::Core::Notifications::Components
36
36
 
37
37
  def pre_render
38
38
  content_tag :div, html_options do
39
- concat UiBibz::Ui::Core::Icons::Glyph.new(options[:glyph], class: 'mr-2').render unless options[:glyph].nil?
39
+ concat UiBibz::Ui::Core::Icons::Glyph.new(options[:glyph], class: 'me-2').render unless options[:glyph].nil?
40
40
  concat image unless options[:image].nil?
41
- concat content_tag(:strong, content, class: 'mr-auto')
41
+ concat content_tag(:strong, content, class: 'me-auto')
42
42
  concat content_tag(:small, options[:time], class: 'text-muted') unless options[:time].nil?
43
43
  concat close_button
44
44
  end
@@ -48,9 +48,9 @@ module UiBibz::Ui::Core::Notifications::Components
48
48
 
49
49
  def image
50
50
  if options[:image].is_a?(String)
51
- image_tag(options[:image], class: 'rounded mr-2', alt: sanitize_text(options[:image])) unless options[:image].nil?
51
+ image_tag(options[:image], class: 'rounded me-2', alt: sanitize_text(options[:image])) unless options[:image].nil?
52
52
  else
53
- options[:image][:class] = UiBibz::Utils::Screwdriver.join_classes(options[:image][:class], 'rounded mr-2')
53
+ options[:image][:class] = UiBibz::Utils::Screwdriver.join_classes(options[:image][:class], 'rounded me-2')
54
54
  if options[:image].delete(:pack)
55
55
  image_pack_tag(options[:image].delete(:href), **options[:image])
56
56
  else
@@ -60,7 +60,7 @@ module UiBibz::Ui::Core::Notifications::Components
60
60
  end
61
61
 
62
62
  def close_button
63
- content_tag :button, '', class: 'ml-2 mb-1 btn-close', "data-dismiss": 'toast', "aria-label": 'Close'
63
+ content_tag :button, '', class: 'ml-2 mb-1 btn-close', "data-bs-dismiss": 'toast', "aria-label": 'Close'
64
64
  end
65
65
 
66
66
  def component_html_classes
@@ -91,7 +91,7 @@ module UiBibz::Ui::Core::Notifications
91
91
 
92
92
  def component_html_data
93
93
  super
94
- add_html_data 'autohide', value: options[:auto_hide] if options[:auto_hide]
94
+ add_html_data 'bs-autohide', value: options[:auto_hide] if options[:auto_hide]
95
95
  end
96
96
 
97
97
  def status
@@ -48,7 +48,7 @@ module UiBibz::Ui::Core::Windows::Components
48
48
  end
49
49
 
50
50
  def close_button_html
51
- content_tag :button, '', class: 'btn-close', 'data-dismiss' => 'modal', 'aria-label' => 'Close'
51
+ content_tag :button, '', class: 'btn-close', 'data-bs-dismiss' => 'modal', 'aria-label' => 'Close'
52
52
  end
53
53
  end
54
54
  end
@@ -146,8 +146,8 @@ module UiBibz::Ui::Core::Windows
146
146
  def backdrop
147
147
  return unless @options[:backdrop]
148
148
 
149
- add_html_data 'backdrop', value: @options[:backdrop]
150
- add_html_data 'keyboard', value: 'false'
149
+ add_html_data 'bs-backdrop', value: @options[:backdrop]
150
+ add_html_data 'bs-keyboard', value: 'false'
151
151
  end
152
152
  end
153
153
  end
@@ -4,29 +4,29 @@ module PopoverExtension
4
4
  TOOLTIP_METHODS = %i[animation container delay html placement selector template title trigger
5
5
  offset fallback_placement boundary sanitize white_list santitize_fn].freeze
6
6
 
7
- POPOVER_METHODS = %i[animation container content delay html placement selector template title
7
+ POPOVER_METHODS = %i[animation container delay html placement selector template title
8
8
  trigger offset fallback_placement boundary sanitize white_list sanitize_fn].freeze
9
9
 
10
10
  def popover_data_html
11
11
  if options[:popover].present?
12
- add_html_data :toggle, value: 'popover'
13
- add_html_data :content, value: (options[:popover].is_a?(String) ? options[:popover] : options[:popover][:content])
12
+ add_html_data 'bs-toggle', value: 'popover'
13
+ add_html_data 'bs-content', value: (options[:popover].is_a?(String) ? options[:popover] : options[:popover][:content])
14
14
  end
15
15
 
16
16
  return unless options[:popover].is_a?(Hash)
17
17
 
18
18
  POPOVER_METHODS.each { |mth| add_html_data(mth, value: options[:popover].try(:[], mth)) unless options[:popover].try(:[], mth).nil? }
19
- add_html_data :placement, value: options[:popover].try(:[], :position) unless options[:popover].try(:[], :position).nil?
19
+ add_html_data 'bs-placement', value: options[:popover].try(:[], :position) unless options[:popover].try(:[], :position).nil?
20
20
  end
21
21
 
22
22
  def tooltip_data_html
23
23
  return if options[:tooltip].nil?
24
24
 
25
- add_html_data :toggle, value: 'tooltip'
25
+ add_html_data 'bs-toggle', value: 'tooltip'
26
26
 
27
27
  if options[:tooltip].is_a?(Hash)
28
28
  TOOLTIP_METHODS.each { |mth| add_html_data(mth, value: options[:tooltip].try(:[], mth)) unless options[:tooltip].try(:[], mth).nil? }
29
- add_html_data :placement, value: options[:tooltip].try(:[], :position) unless options[:tooltip].try(:[], :position).nil?
29
+ add_html_data 'bs-placement', value: options[:tooltip].try(:[], :position) unless options[:tooltip].try(:[], :position).nil?
30
30
  else
31
31
  add_html_data :title, value: options[:tooltip] == true ? sanitize_text(content) : options[:tooltip]
32
32
  end
@@ -50,7 +50,7 @@ class SimpleFormTest < ActionView::TestCase
50
50
  f.input :price, as: :ui_formula_field
51
51
  end
52
52
 
53
- expected = '<form class="simple_form edit_user" id="edit_user_1" action="/users/1" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="patch" /><div class="form-group ui_formula_field optional user_price"><label class="control-label ui_formula_field optional" for="user_price">Price</label><div class="formula_field input-group ui_surround_field"><input type="text" name="user[price_formula]" id="user_price_formula" value="1+2" class="ui_formula_field optional formula-field form-control" formula_field_value="1+2" /><span class="formula-field-sign input-group-text">=</span><input type="text" name="user[price]" id="user_price" value="3.0" class="formula-field-result form-control" readonly="readonly" /><span data-toggle="tooltip" class="formula-field-alert input-group-text"><i class="glyph-danger glyph fas fa-exclamation-triangle"></i></span></div></div></form>'
53
+ expected = '<form class="simple_form edit_user" id="edit_user_1" action="/users/1" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="patch" /><div class="form-group ui_formula_field optional user_price"><label class="control-label ui_formula_field optional" for="user_price">Price</label><div class="formula_field input-group ui_surround_field"><input type="text" name="user[price_formula]" id="user_price_formula" value="1+2" class="ui_formula_field optional formula-field form-control" formula_field_value="1+2" /><span class="formula-field-sign input-group-text">=</span><input type="text" name="user[price]" id="user_price" value="3.0" class="formula-field-result form-control" readonly="readonly" /><span data-bs-toggle="tooltip" class="formula-field-alert input-group-text"><i class="glyph-danger glyph fas fa-exclamation-triangle"></i></span></div></div></form>'
54
54
 
55
55
  assert_equal expected, actual
56
56
  end
@@ -82,7 +82,7 @@ test1</textarea></div></form>"
82
82
  f.input :name_fr, as: :ui_dropdown_select_field, multiple: true, collection: @users, label_method: :name_fr
83
83
  end
84
84
 
85
- expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_dropdown_select_field optional user_name_fr\"><label class=\"control-label ui_dropdown_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr][]\" id=\"user_name_fr\" class=\"btn-secondary multi-select-field\" multiple=\"multiple\"><option value=\"1\">test1</option>
85
+ expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_dropdown_select_field optional user_name_fr\"><label class=\"control-label ui_dropdown_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr][]\" id=\"user_name_fr\" class=\"btn-secondary multi-select-field\" multiple=\"multiple\" data-dropdown-classes=\"dropdown\"><option value=\"1\">test1</option>
86
86
  <option value=\"2\">test2</option></select></div></form>"
87
87
 
88
88
  assert_equal expected, actual
@@ -93,7 +93,7 @@ test1</textarea></div></form>"
93
93
  f.input :name_fr, as: :ui_dropdown_select_field, multiple: true, collection: @continents, toto: 'lala', grouped: true, group_method: :countries
94
94
  end
95
95
 
96
- expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_dropdown_select_field optional user_name_fr\"><label class=\"control-label ui_dropdown_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr][]\" id=\"user_name_fr\" class=\"btn-secondary multi-select-field\" multiple=\"multiple\"><optgroup label=\"Europe\"><option value=\"1\">France</option>
96
+ expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_dropdown_select_field optional user_name_fr\"><label class=\"control-label ui_dropdown_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr][]\" id=\"user_name_fr\" class=\"btn-secondary multi-select-field\" multiple=\"multiple\" data-dropdown-classes=\"dropdown\"><optgroup label=\"Europe\"><option value=\"1\">France</option>
97
97
  <option value=\"2\">Deutchland</option></optgroup></select></div></form>"
98
98
 
99
99
  assert_equal expected, actual
@@ -104,7 +104,7 @@ test1</textarea></div></form>"
104
104
  f.input :name_fr, as: :ui_text_field
105
105
  end
106
106
 
107
- expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_text_field optional user_name_fr\"><label class=\"control-label ui_text_field optional\" for=\"user_name_fr\">Name fr</label><input type=\"ui_text_field\" name=\"user[name_fr]\" id=\"user_name_fr\" value=\"test1\" class=\"form-control string ui_text_field optional\" /></div></form>"
107
+ expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_text_field optional user_name_fr\"><label class=\"control-label ui_text_field optional\" for=\"user_name_fr\">Name fr</label><input type=\"text\" name=\"user[name_fr]\" id=\"user_name_fr\" value=\"test1\" class=\"form-control string ui_text_field optional\" /></div></form>"
108
108
 
109
109
  assert_equal expected, actual
110
110
  end
@@ -145,7 +145,7 @@ class CardTest < ActionView::TestCase
145
145
  end
146
146
  end
147
147
  end
148
- expected = "<div class=\"card\"><div class=\"card-header\"><ul class=\"nav nav-tabs card-header-tabs\" role=\"tablist\"><li class=\"nav-item\"><a href=\"#link1\" class=\"nav-link\" data-toggle=\"tab\" role=\"tab\">link1</a></li><li class=\"nav-item\"><a href=\"#link2\" class=\"nav-link\" data-toggle=\"tab\" role=\"tab\">link2</a></li></ul></div></div>"
148
+ expected = "<div class=\"card\"><div class=\"card-header\"><ul class=\"nav nav-tabs card-header-tabs\" role=\"tablist\"><li class=\"nav-item\"><a href=\"#link1\" class=\"nav-link\" data-bs-toggle=\"tab\" role=\"tab\">link1</a></li><li class=\"nav-item\"><a href=\"#link2\" class=\"nav-link\" data-bs-toggle=\"tab\" role=\"tab\">link2</a></li></ul></div></div>"
149
149
 
150
150
  assert_equal expected, actual
151
151
  end
@@ -47,7 +47,7 @@ class ButtonGroupTest < ActionView::TestCase
47
47
  d.link 'Link 1', url: '#link1', glyph: 'eye'
48
48
  end
49
49
  end
50
- expected = "<div class=\"btn-group\" role=\"group\"><div id=\"dropdown-test\" class=\"dropup btn-group\"><button class=\"btn btn-success dropdown-toggle\" type=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" id=\"dropdown-test\">Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"dropdown-test\"><a class=\"dropdown-item\" href=\"#link1\"><i class=\"glyph fas fa-eye\"></i> Link 1</a></div></div></div>"
50
+ expected = "<div class=\"btn-group\" role=\"group\"><div id=\"dropdown-test\" class=\"dropup btn-group\"><button class=\"btn btn-success dropdown-toggle\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" id=\"dropdown-test\">Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"dropdown-test\"><a class=\"dropdown-item\" href=\"#link1\"><i class=\"glyph fas fa-eye\"></i> Link 1</a></div></div></div>"
51
51
 
52
52
  assert_equal expected, actual
53
53
  end
@@ -63,7 +63,7 @@ class ButtonLinkTest < ActionView::TestCase
63
63
 
64
64
  test 'button_link toggle' do
65
65
  actual = ui_button_link('state', toggle: true)
66
- expected = '<a class="btn-secondary btn" data-toggle="button" aria-pressed="false" autocomplete="off" role="button" href="#">state</a>'
66
+ expected = '<a class="btn-secondary btn" data-bs-toggle="button" aria-pressed="false" autocomplete="off" role="button" href="#">state</a>'
67
67
 
68
68
  assert_equal expected, actual
69
69
  end
@@ -56,7 +56,7 @@ class ButtonTest < ActionView::TestCase
56
56
 
57
57
  test 'button toggle' do
58
58
  actual = ui_button('state', toggle: true)
59
- expected = '<button class="btn-secondary btn" data-toggle="button" aria-pressed="false" autocomplete="off">state</button>'
59
+ expected = '<button class="btn-secondary btn" data-bs-toggle="button" aria-pressed="false" autocomplete="off">state</button>'
60
60
 
61
61
  assert_equal expected, actual
62
62
  end
@@ -77,35 +77,35 @@ class ButtonTest < ActionView::TestCase
77
77
 
78
78
  test 'button with collapse' do
79
79
  actual = ui_button('state', collapse: 'collapse-id')
80
- expected = '<button class="btn-secondary btn" data-toggle="collapse" data-target="#collapse-id" aria-controls="collapse-id" aria-expanded="false">state</button>'
80
+ expected = '<button class="btn-secondary btn" data-bs-toggle="collapse" data-bs-target="#collapse-id" aria-controls="collapse-id" aria-expanded="false">state</button>'
81
81
 
82
82
  assert_equal expected, actual
83
83
  end
84
84
 
85
85
  test 'button with simple popover' do
86
86
  actual = ui_button('My Button', popover: 'My popover')
87
- expected = '<button data-toggle="popover" data-content="My popover" class="btn-secondary btn">My Button</button>'
87
+ expected = '<button data-bs-toggle="popover" data-bs-content="My popover" class="btn-secondary btn">My Button</button>'
88
88
 
89
89
  assert_equal expected, actual
90
90
  end
91
91
 
92
92
  test 'button with complex popover' do
93
93
  actual = ui_button('My Button', popover: { content: 'My popover', position: :left })
94
- expected = '<button data-toggle="popover" data-content="My popover" data-placement="left" class="btn-secondary btn">My Button</button>'
94
+ expected = '<button data-bs-toggle="popover" data-bs-content="My popover" data-bs-placement="left" class="btn-secondary btn">My Button</button>'
95
95
 
96
96
  assert_equal expected, actual
97
97
  end
98
98
 
99
99
  test 'button with simple tooltip' do
100
100
  actual = ui_button('My Button', { tooltip: 'My Button' }, { title: 'My tooltip' })
101
- expected = '<button title="My tooltip" data-toggle="tooltip" data-title="My Button" class="btn-secondary btn">My Button</button>'
101
+ expected = '<button title="My tooltip" data-bs-toggle="tooltip" data-title="My Button" class="btn-secondary btn">My Button</button>'
102
102
 
103
103
  assert_equal expected, actual
104
104
  end
105
105
 
106
106
  test 'button with complex tooltip' do
107
107
  actual = ui_button('My Button', tooltip: { title: 'My tooltip', position: :left })
108
- expected = '<button data-toggle="tooltip" data-title="My tooltip" data-placement="left" class="btn-secondary btn">My Button</button>'
108
+ expected = '<button data-bs-toggle="tooltip" data-title="My tooltip" data-bs-placement="left" class="btn-secondary btn">My Button</button>'
109
109
 
110
110
  assert_equal expected, actual
111
111
  end
@@ -8,7 +8,7 @@ class DropdownTest < ActionView::TestCase
8
8
  actual = UiBibz::Ui::Core::Forms::Dropdowns::Dropdown.new('Dropdown').tap do |d|
9
9
  d.link 'link'
10
10
  end
11
- expected = "<div class=\"dropdown\"><button class=\"btn btn-secondary dropdown-toggle\" type=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" id=\"#{actual.id}\">Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#\">link</a></div></div>"
11
+ expected = "<div class=\"dropdown\"><button class=\"btn btn-secondary dropdown-toggle\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" id=\"#{actual.id}\">Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#\">link</a></div></div>"
12
12
 
13
13
  assert_equal expected, actual.render
14
14
  end
@@ -17,7 +17,7 @@ class DropdownTest < ActionView::TestCase
17
17
  actual = UiBibz::Ui::Core::Forms::Dropdowns::Dropdown.new('Dropdown', status: :primary).tap do |d|
18
18
  d.link 'link'
19
19
  end
20
- expected = "<div class=\"dropdown\"><button class=\"btn btn-primary dropdown-toggle\" type=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" id=\"#{actual.id}\">Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#\">link</a></div></div>"
20
+ expected = "<div class=\"dropdown\"><button class=\"btn btn-primary dropdown-toggle\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" id=\"#{actual.id}\">Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#\">link</a></div></div>"
21
21
 
22
22
  assert_equal expected, actual.render
23
23
  end
@@ -26,7 +26,7 @@ class DropdownTest < ActionView::TestCase
26
26
  actual = UiBibz::Ui::Core::Forms::Dropdowns::Dropdown.new('Dropdown', status: :primary, outline: true).tap do |d|
27
27
  d.link 'link'
28
28
  end
29
- expected = "<div class=\"dropdown\"><button class=\"btn btn-outline-primary dropdown-toggle\" type=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" id=\"#{actual.id}\">Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#\">link</a></div></div>"
29
+ expected = "<div class=\"dropdown\"><button class=\"btn btn-outline-primary dropdown-toggle\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" id=\"#{actual.id}\">Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#\">link</a></div></div>"
30
30
 
31
31
  assert_equal expected, actual.render
32
32
  end
@@ -39,7 +39,7 @@ class DropdownTest < ActionView::TestCase
39
39
  d.divider
40
40
  d.link 'Link3', url: '#link3'
41
41
  end
42
- expected = "<div class=\"dropup btn-group\"><button class=\"btn btn-success dropdown-toggle\" type=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" id=\"#{actual.id}\"><i class=\"glyph fas fa-diamond\"></i> Dropdown</button><div class=\"dropdown-menu dropdown-menu-right\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#link1\"><i class=\"glyph fas fa-eye\"></i> Link 1</a><h6 class=\"dropdown-header\" role=\"presentation\">header</h6><a class=\"dropdown-item\" href=\"#link2\">Link 2</a><div class=\"dropdown-divider\"></div><a class=\"dropdown-item\" href=\"#link3\">Link3</a></div></div>"
42
+ expected = "<div class=\"dropup btn-group\"><button class=\"btn btn-success dropdown-toggle\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" id=\"#{actual.id}\"><i class=\"glyph fas fa-diamond\"></i> Dropdown</button><div class=\"dropdown-menu dropdown-menu-end\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#link1\"><i class=\"glyph fas fa-eye\"></i> Link 1</a><h6 class=\"dropdown-header\" role=\"presentation\">header</h6><a class=\"dropdown-item\" href=\"#link2\">Link 2</a><div class=\"dropdown-divider\"></div><a class=\"dropdown-item\" href=\"#link3\">Link3</a></div></div>"
43
43
 
44
44
  assert_equal expected, actual.render
45
45
  end
@@ -48,7 +48,7 @@ class DropdownTest < ActionView::TestCase
48
48
  actual = UiBibz::Ui::Core::Forms::Dropdowns::Dropdown.new('Split Dropdown').tap do |d|
49
49
  d.link 'state'
50
50
  end
51
- expected = "<div class=\"dropdown\"><button class=\"btn btn-secondary dropdown-toggle\" type=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" id=\"#{actual.id}\">Split Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#\">state</a></div></div>"
51
+ expected = "<div class=\"dropdown\"><button class=\"btn btn-secondary dropdown-toggle\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" id=\"#{actual.id}\">Split Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#\">state</a></div></div>"
52
52
 
53
53
  assert_equal expected, actual.render
54
54
  end
@@ -5,7 +5,7 @@ require 'test_helper'
5
5
  class FormulaFieldTest < ActionView::TestCase
6
6
  test 'formula_field' do
7
7
  actual = UiBibz::Ui::Core::Forms::Numbers::FormulaField.new('value').render
8
- expected = '<div class="formula_field input-group ui_surround_field"><input type="text" name="value_formula" id="value_formula" class="formula-field form-control" /><span class="formula-field-sign input-group-text">=</span><input type="text" name="value" id="value" class="formula-field-result form-control" readonly="readonly" /><span data-toggle="tooltip" class="formula-field-alert input-group-text"><i class="glyph-danger glyph fas fa-exclamation-triangle"></i></span></div>'
8
+ expected = '<div class="formula_field input-group ui_surround_field"><input type="text" name="value_formula" id="value_formula" class="formula-field form-control" /><span class="formula-field-sign input-group-text">=</span><input type="text" name="value" id="value" class="formula-field-result form-control" readonly="readonly" /><span data-bs-toggle="tooltip" class="formula-field-alert input-group-text"><i class="glyph-danger glyph fas fa-exclamation-triangle"></i></span></div>'
9
9
 
10
10
  assert_equal expected, actual
11
11
  end
@@ -6,7 +6,7 @@ class DropdownSelectFieldTest < ActionView::TestCase
6
6
  test 'Multi Select Field' do
7
7
  options = options_for_select(Array.new(2) { |i| "option #{i}" })
8
8
  actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('example', multiple: true, option_tags: options).render
9
- expected = "<select name=\"example[]\" id=\"example\" class=\"btn-secondary multi-select-field\" multiple=\"multiple\"><option value=\"option 0\">option 0</option>
9
+ expected = "<select name=\"example[]\" id=\"example\" data-dropdown-classes=\"dropdown\" class=\"btn-secondary multi-select-field\" multiple=\"multiple\"><option value=\"option 0\">option 0</option>
10
10
  <option value=\"option 1\">option 1</option></select>"
11
11
 
12
12
  assert_equal expected, actual
@@ -15,7 +15,7 @@ class DropdownSelectFieldTest < ActionView::TestCase
15
15
  test 'Multi Select Field data html options' do
16
16
  grouped_options = { 'North America' => [['United statuss', 'US'], 'Canada'], 'Europe' => %w[Denmark Germany France] }
17
17
  actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('example', { multiple: true, option_tags: grouped_options_for_select(grouped_options), clickable_opt_group: true, collapsible_opt_group: true, searchable: true, select_all_options: true, number_displayed: 2, status: :danger }).render
18
- expected = "<select name=\"example[]\" id=\"example\" data-enable-clickable-opt-groups=\"true\" data-enable-collapsible-opt-groups=\"true\" data-enable-filtering=\"true\" data-include-select-all-option=\"true\" data-number-displayed=\"true\" class=\"btn-danger multi-select-field\" multiple=\"multiple\"><optgroup label=\"North America\"><option value=\"US\">United statuss</option>
18
+ expected = "<select name=\"example[]\" id=\"example\" data-enable-clickable-opt-groups=\"true\" data-enable-collapsible-opt-groups=\"true\" data-enable-filtering=\"true\" data-include-select-all-option=\"true\" data-number-displayed=\"true\" data-dropdown-classes=\"dropdown\" class=\"btn-danger multi-select-field\" multiple=\"multiple\"><optgroup label=\"North America\"><option value=\"US\">United statuss</option>
19
19
  <option value=\"Canada\">Canada</option></optgroup><optgroup label=\"Europe\"><option value=\"Denmark\">Denmark</option>
20
20
  <option value=\"Germany\">Germany</option>
21
21
  <option value=\"France\">France</option></optgroup></select>"
@@ -25,7 +25,7 @@ class DropdownSelectFieldTest < ActionView::TestCase
25
25
 
26
26
  test 'Multi select Field refresh option' do
27
27
  actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { multiple: true, refresh: { target: { url: '/' } } }).render
28
- expected = '<div class="field-refresh input-group ui_surround_field"><select name="test[]" id="test" class="btn-secondary multi-select-field" multiple="multiple"></select><span data-connect="{&quot;events&quot;:&quot;click&quot;,&quot;mode&quot;:&quot;remote&quot;,&quot;target&quot;:{&quot;selector&quot;:&quot;#test&quot;,&quot;url&quot;:&quot;/&quot;,&quot;data&quot;:[]}}" class="btn-secondary ui-bibz-connect btn input-refresh-button"><i class="glyph fas fa-sync-alt"></i></span></div>'
28
+ expected = "<div class=\"field-refresh input-group ui_surround_field\"><select name=\"test[]\" id=\"test\" data-dropdown-classes=\"dropdown\" class=\"btn-secondary multi-select-field\" multiple=\"multiple\"></select><span data-connect=\"{&quot;events&quot;:&quot;click&quot;,&quot;mode&quot;:&quot;remote&quot;,&quot;target&quot;:{&quot;selector&quot;:&quot;#test&quot;,&quot;url&quot;:&quot;/&quot;,&quot;data&quot;:[]}}\" class=\"btn-secondary ui-bibz-connect btn input-refresh-button\"><i class=\"glyph fas fa-sync-alt\"></i></span></div>"
29
29
 
30
30
  assert_equal expected, actual
31
31
  end
@@ -31,7 +31,7 @@ class SurroundFieldTest < ActionView::TestCase
31
31
  d.link 'Link3', url: '#link3'
32
32
  end
33
33
  end.render
34
- expected = "<div class=\"input-group ui_surround_field\"><button class=\"btn btn-secondary dropdown-toggle\" type=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" id=\"dropdown-test\">Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"dropdown-test\"><a class=\"dropdown-item\" href=\"#link1\"><i class=\"glyph fas fa-eye\"></i> Link 1</a><h6 class=\"dropdown-header\" role=\"presentation\">header</h6><a class=\"dropdown-item\" href=\"#link2\">Link 2</a><div class=\"dropdown-divider\"></div><a class=\"dropdown-item\" href=\"#link3\">Link3</a></div></div>"
34
+ expected = "<div class=\"input-group ui_surround_field\"><button class=\"btn btn-secondary dropdown-toggle\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" id=\"dropdown-test\">Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"dropdown-test\"><a class=\"dropdown-item\" href=\"#link1\"><i class=\"glyph fas fa-eye\"></i> Link 1</a><h6 class=\"dropdown-header\" role=\"presentation\">header</h6><a class=\"dropdown-item\" href=\"#link2\">Link 2</a><div class=\"dropdown-divider\"></div><a class=\"dropdown-item\" href=\"#link3\">Link3</a></div></div>"
35
35
 
36
36
  assert_equal expected, actual
37
37
  end
@@ -87,7 +87,7 @@ class SurroundFieldTest < ActionView::TestCase
87
87
  sf.button_refresh
88
88
  end.render
89
89
 
90
- expected = "<div class=\"input-group ui_surround_field\"><span class=\"input-group-text\"><i class=\"glyph fas fa-gem\"></i></span><span class=\"input-group-text\">test</span><button class=\"btn-secondary btn\">button</button><div class=\"input-group-btn\" role=\"group\"><button class=\"btn-secondary btn\">test</button></div><a class=\"btn-secondary btn\" role=\"button\" href=\"#\">link</a><div class=\"input-group-text\" label=\"false\"><input type=\"checkbox\" name=\"check\" id=\"check\" value=\"1\" class=\"form-check-input\" /><label class=\"form-check-label\" for=\"check\">check</label></div><div class=\"input-group-text\" label=\"false\"><input type=\"radio\" name=\"radio\" id=\"radio_\" class=\"form-check-input\" /><label class=\"form-check-label\" for=\"radio_\">radio</label></div><input type=\"text\" name=\"text\" id=\"text\" class=\"form-control\" /><input type=\"text\" name=\"date\" id=\"date\" data-date-locale=\"en\" data-provide=\"datepicker\" data-date-format=\"yyyy-mm-dd\" data-date-today-btn=\"linked\" data-date-toggle-active=\"true\" class=\"date_picker form-control\" /><select name=\"dropdown_select\" id=\"dropdown_select\" data-wrapper-classes=\"input-group-btn\" class=\"btn-secondary multi-select-field\"></select><select name=\"select\" id=\"select\" class=\"select-field form-control form-select\"></select><input type=\"text\" name=\"auto\" id=\"auto\" class=\"form-control auto-complete-field\" autocomplete=\"true\" list=\"auto-datalist\" /><datalist id=\"auto-datalist\"></datalist><span data-connect=\"{&quot;events&quot;:&quot;click&quot;,&quot;mode&quot;:&quot;remote&quot;,&quot;target&quot;:{&quot;selector&quot;:&quot;&quot;,&quot;url&quot;:&quot;&quot;,&quot;data&quot;:[]}}\" class=\"btn-secondary ui-bibz-connect btn input-refresh-button\"><i class=\"glyph fas fa-sync-alt\"></i></span></div>"
90
+ expected = "<div class=\"input-group ui_surround_field\"><span class=\"input-group-text\"><i class=\"glyph fas fa-gem\"></i></span><span class=\"input-group-text\">test</span><button class=\"btn-secondary btn\">button</button><div class=\"input-group-btn\" role=\"group\"><button class=\"btn-secondary btn\">test</button></div><a class=\"btn-secondary btn\" role=\"button\" href=\"#\">link</a><div class=\"input-group-text\" label=\"false\"><input type=\"checkbox\" name=\"check\" id=\"check\" value=\"1\" class=\"form-check-input\" /><label class=\"form-check-label\" for=\"check\">check</label></div><div class=\"input-group-text\" label=\"false\"><input type=\"radio\" name=\"radio\" id=\"radio_\" class=\"form-check-input\" /><label class=\"form-check-label\" for=\"radio_\">radio</label></div><input type=\"text\" name=\"text\" id=\"text\" class=\"form-control\" /><input type=\"text\" name=\"date\" id=\"date\" data-date-locale=\"en\" data-provide=\"datepicker\" data-date-format=\"yyyy-mm-dd\" data-date-today-btn=\"linked\" data-date-toggle-active=\"true\" class=\"date_picker form-control\" /><select name=\"dropdown_select\" id=\"dropdown_select\" data-wrapper-classes=\"input-group-btn\" data-dropdown-classes=\"dropdown\" class=\"btn-secondary multi-select-field\"></select><select name=\"select\" id=\"select\" class=\"select-field form-control form-select\"></select><input type=\"text\" name=\"auto\" id=\"auto\" class=\"form-control auto-complete-field\" autocomplete=\"true\" list=\"auto-datalist\" /><datalist id=\"auto-datalist\"></datalist><span data-connect=\"{&quot;events&quot;:&quot;click&quot;,&quot;mode&quot;:&quot;remote&quot;,&quot;target&quot;:{&quot;selector&quot;:&quot;&quot;,&quot;url&quot;:&quot;&quot;,&quot;data&quot;:[]}}\" class=\"btn-secondary ui-bibz-connect btn input-refresh-button\"><i class=\"glyph fas fa-sync-alt\"></i></span></div>"
91
91
 
92
92
  assert_equal expected, actual
93
93
  end
@@ -13,7 +13,7 @@ class ListGroupTest < ActionView::TestCase
13
13
  l.body 'My body'
14
14
  end
15
15
  end
16
- expected = '<div class="list-group"><a href="#momo" class="list-group-item-success list-group-item list-group-item-action">Momo</a><li href="#state" class="list-group-item flex-column align-items-start"><div class="d-flex w-100 justify-content-between"><h5 class="mb-1">My title</h5><small></small></div><p class="mb-1">My body</p><small></small></li></div>'
16
+ expected = "<div class=\"list-group\"><a href=\"#momo\" class=\"list-group-item-success list-group-item list-group-item-action\">Momo</a><a href=\"#state\" class=\"list-group-item list-group-item-action\"><div class=\"d-flex w-100 justify-content-between\"><h5 class=\"mb-1\">My title</h5><small></small></div><p class=\"mb-1\">My body</p><small></small></a></div>"
17
17
 
18
18
  assert_equal expected, actual
19
19
  end
@@ -20,7 +20,7 @@ class LinkTest < ActionView::TestCase
20
20
 
21
21
  test 'Link with collapse option' do
22
22
  actual = ui_link 'My link', url: '#link', collapse: 'collapse-id'
23
- expected = '<a role="button" data-toggle="collapse" aria-controls="collapse-id" aria-expanded="false" href="#link">My link</a>'
23
+ expected = '<a role="button" data-bs-toggle="collapse" aria-controls="collapse-id" aria-expanded="false" href="#link">My link</a>'
24
24
 
25
25
  assert_equal expected, actual
26
26
  end
@@ -10,7 +10,7 @@ class NavTest < ActionView::TestCase
10
10
  n.link 'Profile', url: '#profile', selector: 'profile'
11
11
  n.link 'Messages', url: '#messages', selector: 'messages'
12
12
  end
13
- expected = "<ul class=\"nav nav-tabs\" role=\"tablist\"><li class=\"nav-item\"><a href=\"#Home\" class=\"active nav-link\" data-toggle=\"tab\" role=\"tab\">Home</a></li><li class=\"nav-item\"><a href=\"#profile\" class=\"nav-link\" data-toggle=\"tab\" role=\"tab\">Profile</a></li><li class=\"nav-item\"><a href=\"#messages\" class=\"nav-link\" data-toggle=\"tab\" role=\"tab\">Messages</a></li></ul>"
13
+ expected = "<ul class=\"nav nav-tabs\" role=\"tablist\"><li class=\"nav-item\"><a href=\"#Home\" class=\"active nav-link\" data-bs-toggle=\"tab\" role=\"tab\">Home</a></li><li class=\"nav-item\"><a href=\"#profile\" class=\"nav-link\" data-bs-toggle=\"tab\" role=\"tab\">Profile</a></li><li class=\"nav-item\"><a href=\"#messages\" class=\"nav-link\" data-bs-toggle=\"tab\" role=\"tab\">Messages</a></li></ul>"
14
14
 
15
15
  assert_equal expected, actual
16
16
  end
@@ -65,7 +65,7 @@ class NavTest < ActionView::TestCase
65
65
  n.link 'Profile', url: '#profile', selector: 'profile', label: 16
66
66
  n.link 'Messages', url: '#messages', selector: 'messages', state: :disabled
67
67
  end
68
- expected = "<div class=\"list-group\" role=\"tablist\"><a href=\"#Home\" class=\"active list-group-item list-group-item-action\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"home\">Home</a><a href=\"#profile\" class=\"list-group-item list-group-item-action\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"profile\">Profile</a><a href=\"#messages\" class=\"disabled list-group-item list-group-item-action\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"messages\">Messages</a></div>"
68
+ expected = "<div class=\"list-group\" role=\"tablist\"><a href=\"#Home\" class=\"active list-group-item list-group-item-action\" data-bs-toggle=\"tab\" role=\"tab\" aria-controls=\"home\">Home</a><a href=\"#profile\" class=\"list-group-item list-group-item-action\" data-bs-toggle=\"tab\" role=\"tab\" aria-controls=\"profile\">Profile</a><a href=\"#messages\" class=\"disabled list-group-item list-group-item-action\" data-bs-toggle=\"tab\" role=\"tab\" aria-controls=\"messages\">Messages</a></div>"
69
69
 
70
70
  assert_equal expected, actual
71
71
  end