|
96 | 96 | "redirected to right module too" |
97 | 97 | ); |
98 | 98 |
|
99 | | -subtest 'dereference symlink when displaying needles info' => sub { |
100 | | - my $real_needle_dir = getcwd . '/t/data/openqa/share/tests/opensuse'; |
101 | | - my $symlink_needle_dir = getcwd . '/t/data/openqa/share/tests/test_symlink_dir'; |
102 | | - unlink($symlink_needle_dir); |
103 | | - symlink($real_needle_dir, $symlink_needle_dir) or die "Cannot make symlink $!"; |
104 | | - my $needle_dir = $schema->resultset('NeedleDirs'); |
105 | | - my $symlink_needle_dir_id = $needle_dir->create( |
106 | | - { |
107 | | - path => $symlink_needle_dir . '/needles', |
108 | | - name => '1symlink_needle_dir' |
109 | | - })->id; |
110 | | - my $real_needle_dir_id = $needle_dir->create( |
111 | | - { |
112 | | - path => $real_needle_dir . '/needles', |
113 | | - name => 'real_needle_dir' |
114 | | - })->id; |
115 | | - my $needles = $schema->resultset('Needles'); |
116 | | - my @need_deleted_needles; |
117 | | - my $symlink_needle = $needles->create( |
118 | | - { |
119 | | - dir_id => $symlink_needle_dir_id, |
120 | | - filename => 'bootloader.json', |
121 | | - last_seen_module_id => undef, |
122 | | - last_seen_time => undef, |
123 | | - last_matched_time => undef, |
124 | | - last_matched_module_id => undef, |
125 | | - file_present => 1, |
126 | | - }); |
127 | | - push @need_deleted_needles, $symlink_needle; |
128 | | - |
129 | | - my $default_show_needles_num = 10; |
130 | | - for (my $i = 1; $i < $default_show_needles_num; $i++) { |
131 | | - my $added_needle = $needles->create( |
132 | | - { |
133 | | - dir_id => $symlink_needle_dir_id, |
134 | | - filename => $i . '.json', |
135 | | - last_seen_module_id => undef, |
136 | | - last_seen_time => undef, |
137 | | - last_matched_time => undef, |
138 | | - last_matched_module_id => undef, |
139 | | - file_present => 1, |
140 | | - }); |
141 | | - push @need_deleted_needles, $added_needle; |
142 | | - } |
143 | | - my $real_needle = $needles->create( |
144 | | - { |
145 | | - dir_id => $real_needle_dir_id, |
146 | | - filename => 'bootloader.json', |
147 | | - last_seen_module_id => 10, |
148 | | - last_seen_time => time2str('%Y-%m-%d %H:%M:%S', time - 100000, 'UTC'), |
149 | | - last_matched_module_id => 9, |
150 | | - last_matched_time => time2str('%Y-%m-%d %H:%M:%S', time - 50000, 'UTC'), |
151 | | - file_present => 1, |
152 | | - t_created => time2str('%Y-%m-%d %H:%M:%S', time - 200000, 'UTC'), |
153 | | - t_updated => time2str('%Y-%m-%d %H:%M:%S', time - 200000, 'UTC'), |
154 | | - }); |
155 | | - push @need_deleted_needles, $real_needle; |
156 | | - |
157 | | - my $real_needle_id = $real_needle->id; |
158 | | - my $last_seen_module_id = $real_needle->last_seen_module_id; |
159 | | - my $last_matched_module_id = $real_needle->last_matched_module_id; |
160 | | - |
161 | | - $needles_table = goto_admin_needle_table; |
162 | | - wait_for_data_table($needles_table, 10); |
163 | | - my @needle_trs = $driver->find_elements('#needles tbody tr'); |
164 | | - my @symlink_needle_tds = $driver->find_child_elements($needle_trs[9], 'td', 'css'); |
165 | | - is((shift @symlink_needle_tds)->get_text(), '1symlink_needle_dir', 'symlink needle dir is displayed correctly'); |
166 | | - is((shift @symlink_needle_tds)->get_text(), 'bootloader.json', 'symlink needle file name is displayed correctly'); |
167 | | - my $last_used_td = shift @symlink_needle_tds; |
168 | | - is($last_used_td->get_text(), 'a day ago', 'symlink needle last use is displayed correctly'); |
169 | | - is( |
170 | | - $last_used_td->child('a')->get_attribute('title'), |
171 | | - $real_needle->last_seen_time . '+0000Z', |
172 | | - 'symlink needle last use tooltip is displayed correctly' |
173 | | - ); |
174 | | - like( |
175 | | - $driver->find_child_element($last_used_td, 'a')->get_attribute('href'), |
176 | | - qr/admin\/needles\/$last_seen_module_id\/$real_needle_id/, |
177 | | - 'symlink needle last used module link is correctly' |
178 | | - ); |
179 | | - my $last_matched_td = shift @symlink_needle_tds; |
180 | | - is($last_matched_td->get_text(), 'about 14 hours ago', 'symlink needle last match is displayed correctly'); |
181 | | - like( |
182 | | - $driver->find_child_element($last_matched_td, 'a')->get_attribute('href'), |
183 | | - qr/admin\/needles\/$last_matched_module_id\/$real_needle_id/, |
184 | | - 'symlink needle last used module link is correct' |
185 | | - ); |
186 | | - |
187 | | - $_->delete for @need_deleted_needles; |
188 | | - unlink($symlink_needle_dir); |
189 | | -}; |
190 | | - |
191 | 99 | $needles_table = goto_admin_needle_table; |
192 | 100 | wait_for_data_table($needles_table, 2); |
193 | 101 |
|
|
0 commit comments