summaryrefslogtreecommitdiffstats
path: root/toolkit/components/osfile/tests/xpcshell/test_osfile_writeAtomic_zerobytes.js
blob: eeaac803063be3c7032e87e616b0851fdd33b78a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* 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.");
});