File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11PATH
22 remote: .
33 specs:
4- vrt (0.4.2 )
4+ vrt (0.4.4 )
55
66GEM
77 remote: https://rubygems.org/
Original file line number Diff line number Diff line change @@ -57,7 +57,11 @@ def current_categories
5757
5858 # Get all deprecated ids that would match in the given categories from the current version
5959 def all_matching_categories ( categories )
60- cross_version_category_mapping . select { |key , _value | categories . include? ( key ) } . values . flatten
60+ cross_version_category_mapping
61+ . select { |key , _value | categories . include? ( key ) }
62+ . values
63+ . flatten
64+ . uniq
6165 end
6266
6367 # Finds the best match valid node. First looks at valid nodes in the given new version or finds
Original file line number Diff line number Diff line change 11module VRT
22 module CrossVersionMapping
33 # Maps new_category_id: deprecated_node_id
4+ # and new_subcategory_id: deprecated_node_id
45 def cross_version_category_mapping
56 category_map = { }
67 deprecated_node_json . each do |key , value |
78 latest_version = value . keys . sort_by { |n | Gem ::Version . new ( n ) } . last
8- id = value [ latest_version ] . split ( '.' ) [ 0 ]
9- category_map [ id ] ? category_map [ id ] << key : category_map [ id ] = [ key ]
9+ id_list = value [ latest_version ] . split ( '.' )
10+ cat_id = id_list [ 0 ]
11+ sub_id = id_list [ 0 ..1 ] . join ( '.' )
12+ category_map [ cat_id ] ? category_map [ cat_id ] << key : category_map [ cat_id ] = [ key ]
13+ category_map [ sub_id ] ? category_map [ sub_id ] << key : category_map [ sub_id ] = [ key ]
1014 end
1115 category_map
1216 end
Original file line number Diff line number Diff line change 11module Vrt
2- VERSION = '0.4.3 ' . freeze
2+ VERSION = '0.4.4 ' . freeze
33end
Original file line number Diff line number Diff line change 183183 expect ( full_search_list ) . to contain_exactly ( *deprecated )
184184 end
185185 end
186+
187+ context 'with subcategories included' do
188+ let ( :categories ) do
189+ %w[
190+ external_behavior
191+ other
192+ unvalidated_redirects_and_forwards.open_redirect
193+ ]
194+ end
195+ let ( :deprecated ) do
196+ %w[
197+ poor_physical_security
198+ social_engineering
199+ unvalidated_redirects_and_forwards.lack_of_security_speed_bump_page
200+ unvalidated_redirects_and_forwards.open_redirect.get_based_all_users
201+ unvalidated_redirects_and_forwards.open_redirect.get_based_unauthenticated
202+ unvalidated_redirects_and_forwards.open_redirect.get_based_authenticated
203+ ]
204+ end
205+
206+ it 'should return a list containing the deprecated categories' do
207+ expect ( full_search_list ) . to contain_exactly ( *deprecated )
208+ end
209+ end
186210 end
187211
188212 describe '#current_version?' do
You can’t perform that action at this time.
0 commit comments