aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/testing/fs/fileentry_test.html
blob: 00ad1ffe02b19f3d45b1de5d973d2acc4353bf4b (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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!DOCTYPE html>
<html>
<!--
Copyright 2011 The Closure Library Authors. All Rights Reserved.

Use of this source code is governed by the Apache License, Version 2.0.
See the COPYING file for details.
-->
<!--
-->
<head>
<title>Closure Unit Tests - goog.testing.fs.FileEntry</title>
<script src="../../base.js"></script>
<script>
goog.require('goog.fs.DirectoryEntry.Behavior');
goog.require('goog.testing.AsyncTestCase');
goog.require('goog.testing.MockClock');
goog.require('goog.testing.fs.FileSystem');
goog.require('goog.testing.jsunit');
</script>
</head>
<body>
<script>

var asyncTestCase = goog.testing.AsyncTestCase.createAndInstall();
var fs, file, fileEntry, mockClock, currentTime;

function setUp() {
  mockClock = new goog.testing.MockClock(true);

  fs = new goog.testing.fs.FileSystem();
  fileEntry = fs.getRoot().createDirectorySync('foo').createFileSync('bar');
}

function tearDown() {
  mockClock.uninstall();
}

function testIsFile() {
  assertTrue(fileEntry.isFile());
}

function testIsDirectory() {
  assertFalse(fileEntry.isDirectory());
}

function testFile() {
  var testFile = new goog.testing.fs.FileEntry(fs, fs.getRoot(),
                                               'test', 'hello world');
  testFile.file().addCallback(function(f) {
    assertEquals('test', f.name);
    assertEquals('hello world', f.toString());

    asyncTestCase.continueTesting();
  });
  waitForAsync('testFile');
}

function testGetLastModified() {
  // Advance the clock to a known time.
  mockClock.tick(53);
  var testFile = new goog.testing.fs.FileEntry(fs, fs.getRoot(),
                                               'timeTest', 'hello world');
  mockClock.tick();
  testFile.getLastModified().addCallback(function(date) {
    assertEquals(53, date.getTime());
    asyncTestCase.continueTesting();
  });
  waitForAsync('testGetLastModified');
}

function testGetMetadata() {
  // Advance the clock to a known time.
  mockClock.tick(54);
  var testFile = new goog.testing.fs.FileEntry(fs, fs.getRoot(),
                                               'timeTest', 'hello world');
  mockClock.tick();
  testFile.getMetadata().addCallback(function(metadata) {
    assertEquals(54, metadata.modificationTime.getTime());
    asyncTestCase.continueTesting();
  });
  waitForAsync('testGetMetadata');
}


function waitForAsync(msg) {
  asyncTestCase.waitForAsync(msg);
  mockClock.tick();
}

</script>
</body>
</html>