-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Expand file tree
/
Copy pathLegacyJavaScriptObjectCacheTests.cs
More file actions
118 lines (99 loc) · 3.91 KB
/
LegacyJavaScriptObjectCacheTests.cs
File metadata and controls
118 lines (99 loc) · 3.91 KB
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
using System.Collections.Generic;
using CefSharp.Internals;
using Xunit;
namespace CefSharp.Test.JavascriptBinding
{
public class LegacyJavaScriptObjectCacheTests
{
private const int BrowserId = 1;
[Fact]
public void InsertOrUpdateShouldAddObjectsToCache()
{
var cache = new LegacyJavaScriptObjectCache();
var javascriptObjects = new List<JavascriptObject>
{
new JavascriptObject { Name = "Object1" },
new JavascriptObject { Name = "Object2" }
};
cache.InsertOrUpdate(BrowserId, javascriptObjects);
var cachedValues = cache.GetCacheValues(BrowserId);
Assert.Contains(javascriptObjects[0], cachedValues);
Assert.Contains(javascriptObjects[1], cachedValues);
}
[Fact]
public void GetCacheValuesShouldReturnAllCachedObjects()
{
var cache = new LegacyJavaScriptObjectCache();
var javascriptObjects = new List<JavascriptObject>
{
new JavascriptObject { Name = "Object1" },
new JavascriptObject { Name = "Object2" }
};
cache.InsertOrUpdate(BrowserId, javascriptObjects);
var cachedValues = cache.GetCacheValues(BrowserId);
Assert.Equal(2, cachedValues.Count);
}
[Fact]
public void GetCacheShouldReturnUnderlyingDictionary()
{
var cache = new LegacyJavaScriptObjectCache();
var javascriptObjects = new List<JavascriptObject>
{
new JavascriptObject { Name = "Object1" }
};
cache.InsertOrUpdate(BrowserId, javascriptObjects);
var cachedDictionary = cache.GetCache(BrowserId);
Assert.Single(cachedDictionary);
Assert.True(cachedDictionary.ContainsKey("Object1"));
}
[Fact]
public void InsertOrUpdateShouldReplaceExistingObjects()
{
var cache = new LegacyJavaScriptObjectCache();
var initialObjects = new List<JavascriptObject>
{
new JavascriptObject { Name = "Object1" }
};
var updatedObjects = new List<JavascriptObject>
{
new JavascriptObject { Name = "Object1" }
};
cache.InsertOrUpdate(BrowserId, initialObjects);
cache.InsertOrUpdate(BrowserId, updatedObjects);
var cachedValues = cache.GetCacheValues(BrowserId);
Assert.DoesNotContain(initialObjects[0], cachedValues);
Assert.Contains(updatedObjects[0], cachedValues);
}
[Fact]
public void InsertOrUpdateShouldAppendObjectsWithDifferentNames()
{
var cache = new LegacyJavaScriptObjectCache();
var initialObjects = new List<JavascriptObject>
{
new JavascriptObject { Name = "Object1" }
};
var updatedObjects = new List<JavascriptObject>
{
new JavascriptObject { Name = "Object2" }
};
cache.InsertOrUpdate(BrowserId, initialObjects);
cache.InsertOrUpdate(BrowserId, updatedObjects);
var cachedValues = cache.GetCacheValues(BrowserId);
Assert.Contains(initialObjects[0], cachedValues);
Assert.Contains(updatedObjects[0], cachedValues);
}
[Fact]
public void ClearCacheShouldDoNothing()
{
var cache = new LegacyJavaScriptObjectCache();
var javascriptObjects = new List<JavascriptObject>
{
new JavascriptObject { Name = "Object1" }
};
cache.InsertOrUpdate(BrowserId, javascriptObjects);
cache.ClearCache(BrowserId);
var cachedValues = cache.GetCacheValues(BrowserId);
Assert.Contains(javascriptObjects[0], cachedValues);
}
}
}