diff --git a/components/script/dom/bindings/str.rs b/components/script/dom/bindings/str.rs index 67ba6f34b3d..986554206b6 100644 --- a/components/script/dom/bindings/str.rs +++ b/components/script/dom/bindings/str.rs @@ -474,7 +474,15 @@ impl DOMString { "{:04}-{:02}-{:02}T{:02}:{:02}", year, month, day, hour, minute ); + } else if second < 10.0 { + // we need exactly one leading zero on the seconds, + // whatever their total string length might be + self.0 = format!( + "{:04}-{:02}-{:02}T{:02}:{:02}:0{}", + year, month, day, hour, minute, second + ); } else { + // we need no leading zeroes on the seconds self.0 = format!( "{:04}-{:02}-{:02}T{:02}:{:02}:{}", year, month, day, hour, minute, second diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index b63cdb025a4..8f37ab58752 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -369990,6 +369990,12 @@ {} ] ], + "html/semantics/forms/the-input-element/input-seconds-leading-zeroes.html": [ + [ + "html/semantics/forms/the-input-element/input-seconds-leading-zeroes.html", + {} + ] + ], "html/semantics/forms/the-input-element/input-setcustomvalidity.html": [ [ "html/semantics/forms/the-input-element/input-setcustomvalidity.html", @@ -693507,6 +693513,10 @@ "006a8fbd8f1b84d18e9ec29285f751f037118389", "testharness" ], + "html/semantics/forms/the-input-element/input-seconds-leading-zeroes.html": [ + "d94bee10296da58ba700b4e7a910f9e0821c82ef", + "testharness" + ], "html/semantics/forms/the-input-element/input-setcustomvalidity.html": [ "accb24d8f9564f97e12bf4784162ff3cd00f35af", "testharness" diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/input-seconds-leading-zeroes.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/input-seconds-leading-zeroes.html new file mode 100644 index 00000000000..d94bee10296 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/input-seconds-leading-zeroes.html @@ -0,0 +1,52 @@ + + + +
+