summaryrefslogtreecommitdiffstats
path: root/toolkit/components/filewatcher/tests/xpcshell/test_watch_many_changes.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/filewatcher/tests/xpcshell/test_watch_many_changes.js')
-rw-r--r--toolkit/components/filewatcher/tests/xpcshell/test_watch_many_changes.js73
1 files changed, 0 insertions, 73 deletions
diff --git a/toolkit/components/filewatcher/tests/xpcshell/test_watch_many_changes.js b/toolkit/components/filewatcher/tests/xpcshell/test_watch_many_changes.js
deleted file mode 100644
index c236c6e1d..000000000
--- a/toolkit/components/filewatcher/tests/xpcshell/test_watch_many_changes.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-function run_test() {
- // Set up profile. We will use profile path create some test files
- do_get_profile();
-
- // Start executing the tests
- run_next_test();
-}
-
-/**
- * Test that we correctly handle watching directories when hundreds of files
- * change simultaneously.
- */
-add_task(function* test_fill_notification_buffer() {
-
- // Create and watch a sub-directory of the profile directory so we don't
- // catch notifications we're not interested in (i.e. "startupCache").
- let watchedDir = OS.Path.join(OS.Constants.Path.profileDir, "filewatcher_playground");
- yield OS.File.makeDir(watchedDir);
-
- // The number of files to create.
- let numberOfFiles = 100;
- let fileNameBase = "testFile";
-
- // This will be used to keep track of the number of changes within the watched
- // directory.
- let detectedChanges = 0;
-
- // We expect at least the following notifications for each file:
- // - File creation
- // - File deletion
- let expectedChanges = numberOfFiles * 2;
-
- // Instantiate the native watcher.
- let watcher = makeWatcher();
- let deferred = Promise.defer();
-
- // Initialise the change callback.
- let changeCallback = function(changed) {
- do_print(changed + " has changed.");
-
- detectedChanges += 1;
-
- // Resolve the promise if we get all the expected changes.
- if (detectedChanges >= expectedChanges) {
- deferred.resolve();
- }
- };
-
- // Add the profile directory to the watch list and wait for the file watcher
- // to start watching it.
- yield promiseAddPath(watcher, watchedDir, changeCallback, deferred.reject);
-
- // Create and then remove the files within the watched directory.
- for (let i = 0; i < numberOfFiles; i++) {
- let tmpFilePath = OS.Path.join(watchedDir, fileNameBase + i);
- yield OS.File.writeAtomic(tmpFilePath, "test content");
- yield OS.File.remove(tmpFilePath);
- }
-
- // Wait until the watcher informs us that all the files were
- // created, modified and removed.
- yield deferred.promise;
-
- // Remove the watch and free the associated memory (we need to
- // reuse 'changeCallback' and 'errorCallback' to unregister).
- yield promiseRemovePath(watcher, watchedDir, changeCallback, deferred.reject);
-});