Index: LayoutTests/media/track/opera/track/webvtt/parsing-cue-data/common.js |
diff --git a/LayoutTests/media/track/opera/track/webvtt/parsing-cue-data/common.js b/LayoutTests/media/track/opera/track/webvtt/parsing-cue-data/common.js |
index 543fe46556f8d9f0622b280439f581e44458742f..f94fd87ebf52a66fc916fa0d5dd336acaca900af 100644 |
--- a/LayoutTests/media/track/opera/track/webvtt/parsing-cue-data/common.js |
+++ b/LayoutTests/media/track/opera/track/webvtt/parsing-cue-data/common.js |
@@ -109,6 +109,31 @@ function test_serializer(element) { |
return lines.join("\n"); |
} |
+function mark_diffs(expected, actual) { |
+ var expected_lines = expected.split("\n"); |
+ var actual_lines = actual.split("\n"); |
+ |
+ var max_length = Math.max(expected_lines.length, actual_lines.length); |
+ |
+ var expected_diff = ["code", {}]; |
+ var actual_diff = ["code", {}]; |
+ |
+ for (var i=0; i<max_length; i++) { |
+ if (expected_lines[i] === actual_lines[i]) { |
+ expected_diff.push(expected_lines[i] + "\n"); |
+ actual_diff.push(actual_lines[i] + "\n"); |
+ } else { |
+ if (expected_lines[i]) { |
+ expected_diff.push(["span", {style:"color:red"}, expected_lines[i] + "\n"]); |
+ } |
+ if (actual_lines[i]) { |
+ actual_diff.push(["span", {style:"color:red"}, actual_lines[i] + "\n"]); |
+ } |
+ } |
+ } |
+ return [expected_diff, actual_diff]; |
+} |
+ |
function print_diffs(test_id, uri_encoded_input, expected, actual, container) { |
container = container ? container : null; |
if (actual) { |
@@ -171,8 +196,10 @@ function trackLoaded(e) { |
var cue = track.track.cues[0]; |
var frag = cue.getCueAsHTML(); |
var got = test_serializer(frag); |
- if (got !== this.expected) { |
- print_diffs(this.test_id, this.url_encoded_input, this.expected, got); |
+ // For friendlier output on failures, set window.prettyPrintDiffs. |
+ if ('prettyPrintDiffs' in window) { |
+ if (got !== this.expected) |
+ print_diffs(this.test_id, this.url_encoded_input, this.expected, got); |
} |
assert_equals(got, this.expected); |
this.done(); |