35
35
36
36
-record (state , { node_name , reader , writer ,
37
37
current_line_num , out_file , url_file , group , suite ,
38
- priv_dir , log_flags = [] }).
38
+ log_flags = [] }).
39
39
-include_lib (" exml/include/exml.hrl" ).
40
40
41
41
% % @doc Return a unique id for this CTH.
@@ -74,8 +74,7 @@ post_end_per_group(Group,_Config,Return,State) ->
74
74
pre_init_per_testcase (TC ,Config ,State = # state {}) ->
75
75
maybe_print_log_on_mim_node (testcase , starting , TC , State ),
76
76
Dog = test_server :timetrap (test_server :seconds (10 )),
77
- State2 = keep_priv_dir (Config , State ),
78
- State3 = ensure_initialized (Config , State2 ),
77
+ State3 = ensure_initialized (Config , State ),
79
78
State4 = pre_insert_line_numbers_into_report (State3 , TC ),
80
79
test_server :timetrap_cancel (Dog ),
81
80
{Config , State4 }.
@@ -174,17 +173,13 @@ ensure_initialized(Config, State=#state{node_name=Node, out_file=undefined}) ->
174
173
ensure_initialized (_Config , State = # state {}) ->
175
174
State .
176
175
177
- keep_priv_dir (Config , State ) ->
178
- PrivDir = proplists :get_value (priv_dir , Config ),
179
- State # state {priv_dir = PrivDir }.
180
-
181
176
pre_insert_line_numbers_into_report (State = # state {writer = undefined }, _TC ) ->
182
177
State ; % Invalid state
183
178
pre_insert_line_numbers_into_report (State = # state {node_name = Node , reader = Reader , writer = Writer ,
184
179
current_line_num = CurrentLineNum , url_file = UrlFile ,
185
- priv_dir = PrivDir , group = Group , suite = Suite }, TC ) ->
180
+ group = Group , suite = Suite }, TC ) ->
186
181
CurrentLineNum2 = read_and_write_lines (Node , Reader , Writer , CurrentLineNum ),
187
- add_log_link_to_line (PrivDir , UrlFile , CurrentLineNum2 , Node , " when started" ),
182
+ add_log_link_to_line (UrlFile , CurrentLineNum2 , Node , " when started" ),
188
183
Message = io_lib :format (
189
184
" <font color=gray>INIT suite=~p group=~p testcase=~p </font>~n " ,
190
185
[Suite , Group , TC ]),
@@ -195,9 +190,9 @@ post_insert_line_numbers_into_report(State=#state{writer=undefined}, _TC) ->
195
190
State ; % Invalid state
196
191
post_insert_line_numbers_into_report (State = # state {node_name = Node , reader = Reader , writer = Writer ,
197
192
current_line_num = CurrentLineNum , url_file = UrlFile ,
198
- group = Group , suite = Suite , priv_dir = PrivDir }, TC ) ->
193
+ group = Group , suite = Suite }, TC ) ->
199
194
CurrentLineNum2 = read_and_write_lines (Node , Reader , Writer , CurrentLineNum ),
200
- add_log_link_to_line (PrivDir , UrlFile , CurrentLineNum2 , Node , " when finished" ),
195
+ add_log_link_to_line (UrlFile , CurrentLineNum2 , Node , " when finished" ),
201
196
% % Write a message after the main part
202
197
Message = io_lib :format (
203
198
" <font color=gray>DONE suite=~p group=~p testcase=~p </font>~n " ,
@@ -214,25 +209,22 @@ insert_line_numbers_into_report(State=#state{node_name=Node, reader=Reader, writ
214
209
% % allows to add simple links.
215
210
% %
216
211
% % We can't add link with label (i.e. index.html#LABEL), because it would be escaped.
217
- % % Let's create an HTML file for each link we want to insert, and insert our custom
218
- % % redirect code inside.
219
212
% %
220
213
% % Args:
221
214
% % `Heading' - some description for the link
222
- % % `PrivDir' - current log_private directory
223
- % % `LinkName' - filename where to write our redirect code inside log_private
224
215
% % `UrlFile' - destination URL to redirect to
225
216
% % `Label' - position in the document
226
- add_log_link_to_line (PrivDir , UrlFile , LogLine , Node , ExtraDescription ) ->
217
+ add_log_link_to_line (UrlFile , LogLine , Node , ExtraDescription ) ->
227
218
Label = " L" ++ integer_to_list (LogLine ),
228
219
Heading = " View log from node " ++ atom_to_list (Node ) ++ ExtraDescription ,
229
- % % We need to invent something unique enough here :)
230
- LinkName = atom_to_list (Node ) ++ " _" ++ integer_to_list (LogLine ) ++ " .html" ,
220
+ LinkText = atom_to_list (Node ) ++ " #" ++ integer_to_list (LogLine ),
231
221
URL = UrlFile ++ " #" ++ Label ,
232
- RedirectCode = " <meta http-equiv='refresh' content='0; url=../" ++ URL ++ " ' />" ,
233
- WhereToWrite = filename :join (PrivDir , LinkName ),
234
- file :write_file (WhereToWrite , RedirectCode ),
235
- escalus_ct :add_log_link (Heading , LinkName , " text/html" ).
222
+ ct_add_link (Heading , URL , LinkText , " text/html" ).
223
+
224
+ % % ct_logs:add_link/3 but without URL escaping
225
+ ct_add_link (Heading , URL , LinkText , Type ) ->
226
+ Link = io_lib :format (" <a href=\" ~ts \" type=~tp >~ts </a>" , [URL , Type , LinkText ]),
227
+ ct_logs :log (Heading ++ binary_to_list (iolist_to_binary (Link )), " " , []).
236
228
237
229
open_out_file (OutFile ) ->
238
230
open_file_without_linking (node (), OutFile , [write , delayed_write ]).
0 commit comments