| // Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file | 
 | // for details. All rights reserved. Use of this source code is governed by a | 
 | // BSD-style license that can be found in the LICENSE file. | 
 |  | 
 | import 'dart:async'; | 
 | import 'dart:io'; | 
 |  | 
 | import 'package:expect/expect.dart'; | 
 | import 'test_utils.dart' show withTempDir; | 
 |  | 
 | main() async { | 
 |   // Verify that File.setLastAccessed does *not* trigger a FileSystemModifyEvent | 
 |   // with FileSystemModifyEvent.contentChanged == true. | 
 |   await withTempDir('issue_35112', (Directory tempDir) async { | 
 |     File file = new File("${tempDir.path}/file.tmp"); | 
 |     file.createSync(); | 
 |  | 
 |     final eventCompleter = new Completer<FileSystemEvent?>(); | 
 |     StreamSubscription? subscription; | 
 |     subscription = tempDir.watch().listen((FileSystemEvent event) { | 
 |       if (event is FileSystemModifyEvent && event.contentChanged) { | 
 |         eventCompleter.complete(event); | 
 |       } | 
 |       subscription?.cancel(); | 
 |     }); | 
 |  | 
 |     file.setLastAccessedSync(DateTime.now().add(Duration(days: 3))); | 
 |     Timer(Duration(seconds: 1), () { | 
 |       eventCompleter.complete(null); | 
 |       subscription?.cancel(); | 
 |     }); | 
 |     ; | 
 |     FileSystemEvent? event = await eventCompleter.future; | 
 |     Expect.isNull(event, | 
 |         "No event should be triggered or .contentChanged should equal false"); | 
 |   }); | 
 | } |