/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";
var SHARED_PATH;

add_task(async function init() {
  do_get_profile();
  SHARED_PATH = OS.Path.join(OS.Constants.Path.profileDir, "test_osfile_write_zerobytes.tmp");
});

add_test_pair(async function test_osfile_writeAtomic_zerobytes() {
  let encoder = new TextEncoder();
  let string1 = "";
  let outbin = encoder.encode(string1);
  await OS.File.writeAtomic(SHARED_PATH, outbin);

  let decoder = new TextDecoder();
  let bin = await OS.File.read(SHARED_PATH);
  let string2 = decoder.decode(bin);
  // Checking if writeAtomic supports writing encoded zero-byte strings
  Assert.equal(string2, string1, "Read the expected (empty) string.");
});

function run_test() {
  run_next_test();
}