summaryrefslogtreecommitdiffstats
path: root/toolkit/components/osfile/tests/xpcshell/test_osfile_writeAtomic_zerobytes.js
blob: a32a690e6fefefaa878677480394c0e46a90e7ca (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
27
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";
var SHARED_PATH;

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

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

  let decoder = new TextDecoder();
  let bin = yield 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();
}