public void RemovingUnminifiedStringCausesUnminifyToReturnNull() { var unminifiedTracker = new Dictionary <string, string>(); var trickyStrings = new[] { @"\foo|1,4,\|\\\,", "", "\u03A3\u03B9\u03B3\u03BD\u03B1\u03BB\u13A1" }; var stringMinifer = new StringMinifier(); foreach (var unminified in trickyStrings) { var minified = stringMinifer.Minify(unminified); unminifiedTracker[minified] = unminified; } var minificationToKeep = stringMinifer.Minify("test"); foreach (var pair in unminifiedTracker) { stringMinifer.RemoveUnminified(pair.Value); } foreach (var pair in unminifiedTracker) { // There is a memory leak if this does not return null Assert.Null(stringMinifer.Unminify(pair.Key)); } Assert.Equal("test", stringMinifer.Unminify(minificationToKeep)); }
public void RemovingUnminifiedStringCausesUnminifyToReturnNull() { var unminifiedTracker = new Dictionary<string, string>(); var trickyStrings = new[] { @"\foo|1,4,\|\\\,", "", "\u03A3\u03B9\u03B3\u03BD\u03B1\u03BB\u13A1" }; var stringMinifer = new StringMinifier(); foreach (var unminified in trickyStrings) { var minified = stringMinifer.Minify(unminified); unminifiedTracker[minified] = unminified; } var minificationToKeep = stringMinifer.Minify("test"); foreach (var pair in unminifiedTracker) { stringMinifer.RemoveUnminified(pair.Value); } foreach (var pair in unminifiedTracker) { // There is a memory leak if this does not return null Assert.Null(stringMinifer.Unminify(pair.Key)); } Assert.Equal("test", stringMinifer.Unminify(minificationToKeep)); }
public void StringsCanBeReminifiedAfterBeingRemoved() { var unminifiedTracker1 = new Dictionary <string, string>(); var unminifiedTracker2 = new Dictionary <string, string>(); var trickyStrings = new[] { @"\foo|1,4,\|\\\,", "", "\u03A3\u03B9\u03B3\u03BD\u03B1\u03BB\u13A1" }; var stringMinifer = new StringMinifier(); foreach (var unminified in trickyStrings) { var minified = stringMinifer.Minify(unminified); unminifiedTracker1[minified] = unminified; } var minificationToKeep = stringMinifer.Minify("test"); // Remove trickyStrings before reading them foreach (var fullString in trickyStrings) { stringMinifer.RemoveUnminified(fullString); } foreach (var unminified in trickyStrings) { var minified = stringMinifer.Minify(unminified); unminifiedTracker2[minified] = unminified; } foreach (var pair in unminifiedTracker2) { Assert.Equal(pair.Value, stringMinifer.Unminify(pair.Key)); // If the first unminifiedTracker contains this key there is likely a memory leak Assert.False(unminifiedTracker1.ContainsKey(pair.Key)); } foreach (var pair in unminifiedTracker1) { // There is a memory leak if this does not return null Assert.Null(stringMinifer.Unminify(pair.Key)); } Assert.Equal("test", stringMinifer.Unminify(minificationToKeep)); }
public void StringsCanBeReminifiedAfterBeingRemoved() { var unminifiedTracker1 = new Dictionary<string, string>(); var unminifiedTracker2 = new Dictionary<string, string>(); var trickyStrings = new[] { @"\foo|1,4,\|\\\,", "", "\u03A3\u03B9\u03B3\u03BD\u03B1\u03BB\u13A1" }; var stringMinifer = new StringMinifier(); foreach (var unminified in trickyStrings) { var minified = stringMinifer.Minify(unminified); unminifiedTracker1[minified] = unminified; } var minificationToKeep = stringMinifer.Minify("test"); // Remove trickyStrings before reading them foreach (var fullString in trickyStrings) { stringMinifer.RemoveUnminified(fullString); } foreach (var unminified in trickyStrings) { var minified = stringMinifer.Minify(unminified); unminifiedTracker2[minified] = unminified; } foreach (var pair in unminifiedTracker2) { Assert.Equal(pair.Value, stringMinifer.Unminify(pair.Key)); // If the first unminifiedTracker contains this key there is likely a memory leak Assert.False(unminifiedTracker1.ContainsKey(pair.Key)); } foreach (var pair in unminifiedTracker1) { // There is a memory leak if this does not return null Assert.Null(stringMinifer.Unminify(pair.Key)); } Assert.Equal("test", stringMinifer.Unminify(minificationToKeep)); }