Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: test/FileSystemJsObject.cpp

Issue 10310030: Convert references to FileSystem & Co. into shared pointers (avoid use after free) (Closed)
Patch Set: Created April 18, 2013, 11:59 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: test/FileSystemJsObject.cpp
===================================================================
--- a/test/FileSystemJsObject.cpp
+++ b/test/FileSystemJsObject.cpp
@@ -80,154 +80,164 @@ namespace
AdblockPlus::Sleep(10);
content = jsEngine.Evaluate("result.content")->AsString();
error = jsEngine.Evaluate("result.error")->AsString();
}
}
TEST(FileSystemJsObjectTest, Read)
{
- MockFileSystem fileSystem;
- fileSystem.contentToRead = "foo";
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), &fileSystem, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
+ MockFileSystem* fileSystem = new MockFileSystem();
+ fileSystem->contentToRead = "foo";
+ jsEngine.SetFileSystem(AdblockPlus::FileSystemPtr(fileSystem));;
std::string content;
std::string error;
ReadFile(jsEngine, content, error);
ASSERT_EQ("foo", content);
ASSERT_EQ("", error);
}
TEST(FileSystemJsObjectTest, ReadIllegalArguments)
{
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), 0, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
ASSERT_ANY_THROW(jsEngine.Evaluate("_fileSystem.read()"));
ASSERT_ANY_THROW(jsEngine.Evaluate("_fileSystem.read('', '')"));
}
TEST(FileSystemJsObjectTest, ReadError)
{
- MockFileSystem fileSystem;
- fileSystem.success = false;
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), &fileSystem, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
+ MockFileSystem* fileSystem = new MockFileSystem();
+ fileSystem->success = false;
+ jsEngine.SetFileSystem(AdblockPlus::FileSystemPtr(fileSystem));;
std::string content;
std::string error;
ReadFile(jsEngine, content, error);
ASSERT_NE("", error);
ASSERT_EQ("", content);
}
TEST(FileSystemJsObjectTest, Write)
{
- MockFileSystem fileSystem;
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), &fileSystem, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
+ MockFileSystem* fileSystem = new MockFileSystem();
+ jsEngine.SetFileSystem(AdblockPlus::FileSystemPtr(fileSystem));;
jsEngine.Evaluate("_fileSystem.write('foo', 'bar', function(e) {error = e})");
AdblockPlus::Sleep(10);
- ASSERT_EQ("foo", fileSystem.lastWrittenPath);
- ASSERT_EQ("bar", fileSystem.lastWrittenContent);
+ ASSERT_EQ("foo", fileSystem->lastWrittenPath);
+ ASSERT_EQ("bar", fileSystem->lastWrittenContent);
ASSERT_EQ("", jsEngine.Evaluate("error")->AsString());
}
TEST(FileSystemJsObjectTest, WriteIllegalArguments)
{
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), 0, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
ASSERT_ANY_THROW(jsEngine.Evaluate("_fileSystem.write()"));
ASSERT_ANY_THROW(jsEngine.Evaluate("_fileSystem.write('', '', '')"));
}
TEST(FileSystemJsObjectTest, WriteError)
{
- MockFileSystem fileSystem;
- fileSystem.success = false;
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), &fileSystem, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
+ MockFileSystem* fileSystem = new MockFileSystem();
+ fileSystem->success = false;
+ jsEngine.SetFileSystem(AdblockPlus::FileSystemPtr(fileSystem));;
jsEngine.Evaluate("_fileSystem.write('foo', 'bar', function(e) {error = e})");
AdblockPlus::Sleep(10);
ASSERT_NE("", jsEngine.Evaluate("error")->AsString());
}
TEST(FileSystemJsObjectTest, Move)
{
- MockFileSystem fileSystem;
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), &fileSystem, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
+ MockFileSystem* fileSystem = new MockFileSystem();
+ jsEngine.SetFileSystem(AdblockPlus::FileSystemPtr(fileSystem));;
jsEngine.Evaluate("_fileSystem.move('foo', 'bar', function(e) {error = e})");
AdblockPlus::Sleep(10);
- ASSERT_EQ("foo", fileSystem.movedFrom);
- ASSERT_EQ("bar", fileSystem.movedTo);
+ ASSERT_EQ("foo", fileSystem->movedFrom);
+ ASSERT_EQ("bar", fileSystem->movedTo);
ASSERT_EQ("", jsEngine.Evaluate("error")->AsString());
}
TEST(FileSystemJsObjectTest, MoveIllegalArguments)
{
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), 0, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
ASSERT_ANY_THROW(jsEngine.Evaluate("_fileSystem.move()"));
ASSERT_ANY_THROW(jsEngine.Evaluate("_fileSystem.move('', '', '')"));
}
TEST(FileSystemJsObjectTest, MoveError)
{
- MockFileSystem fileSystem;
- fileSystem.success = false;
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), &fileSystem, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
+ MockFileSystem* fileSystem = new MockFileSystem();
+ fileSystem->success = false;
+ jsEngine.SetFileSystem(AdblockPlus::FileSystemPtr(fileSystem));;
jsEngine.Evaluate("_fileSystem.move('foo', 'bar', function(e) {error = e})");
AdblockPlus::Sleep(10);
ASSERT_NE("", jsEngine.Evaluate("error")->AsString());
}
TEST(FileSystemJsObjectTest, Remove)
{
- MockFileSystem fileSystem;
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), &fileSystem, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
+ MockFileSystem* fileSystem = new MockFileSystem();
+ jsEngine.SetFileSystem(AdblockPlus::FileSystemPtr(fileSystem));;
jsEngine.Evaluate("_fileSystem.remove('foo', function(e) {error = e})");
AdblockPlus::Sleep(10);
- ASSERT_EQ("foo", fileSystem.removedPath);
+ ASSERT_EQ("foo", fileSystem->removedPath);
ASSERT_EQ("", jsEngine.Evaluate("error")->AsString());
}
TEST(FileSystemJsObjectTest, RemoveIllegalArguments)
{
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), 0, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
ASSERT_ANY_THROW(jsEngine.Evaluate("_fileSystem.remove()"));
ASSERT_ANY_THROW(jsEngine.Evaluate("_fileSystem.remove('', '')"));
}
TEST(FileSystemJsObjectTest, RemoveError)
{
- MockFileSystem fileSystem;
- fileSystem.success = false;
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), &fileSystem, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
+ MockFileSystem* fileSystem = new MockFileSystem();
+ fileSystem->success = false;
+ jsEngine.SetFileSystem(AdblockPlus::FileSystemPtr(fileSystem));;
jsEngine.Evaluate("_fileSystem.remove('foo', function(e) {error = e})");
AdblockPlus::Sleep(10);
ASSERT_NE("", jsEngine.Evaluate("error")->AsString());
}
TEST(FileSystemJsObjectTest, Stat)
{
- MockFileSystem fileSystem;
- fileSystem.statExists = true;
- fileSystem.statIsDirectory= false;
- fileSystem.statIsFile = true;
- fileSystem.statLastModified = 1337;
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), &fileSystem, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
+ MockFileSystem* fileSystem = new MockFileSystem();
+ fileSystem->statExists = true;
+ fileSystem->statIsDirectory= false;
+ fileSystem->statIsFile = true;
+ fileSystem->statLastModified = 1337;
+ jsEngine.SetFileSystem(AdblockPlus::FileSystemPtr(fileSystem));;
jsEngine.Evaluate("_fileSystem.stat('foo', function(r) {result = r})");
AdblockPlus::Sleep(10);
- ASSERT_EQ("foo", fileSystem.statPath);
+ ASSERT_EQ("foo", fileSystem->statPath);
ASSERT_EQ("", jsEngine.Evaluate("result.error")->AsString());
ASSERT_TRUE(jsEngine.Evaluate("result.exists")->AsBool());
ASSERT_FALSE(jsEngine.Evaluate("result.isDirectory")->AsBool());
ASSERT_TRUE(jsEngine.Evaluate("result.isFile")->AsBool());
ASSERT_EQ(1337, jsEngine.Evaluate("result.lastModified")->AsInt());
}
TEST(FileSystemJsObjectTest, StatIllegalArguments)
{
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), 0, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
ASSERT_ANY_THROW(jsEngine.Evaluate("_fileSystem.stat()"));
ASSERT_ANY_THROW(jsEngine.Evaluate("_fileSystem.stat('', '')"));
}
TEST(FileSystemJsObjectTest, StatError)
{
- MockFileSystem fileSystem;
- fileSystem.success = false;
- AdblockPlus::JsEngine jsEngine(AdblockPlus::AppInfo(), &fileSystem, 0, 0);
+ AdblockPlus::JsEngine jsEngine;
+ MockFileSystem* fileSystem = new MockFileSystem();
+ fileSystem->success = false;
+ jsEngine.SetFileSystem(AdblockPlus::FileSystemPtr(fileSystem));;
jsEngine.Evaluate("_fileSystem.stat('foo', function(r) {result = r})");
AdblockPlus::Sleep(10);
ASSERT_NE("", jsEngine.Evaluate("result.error")->AsString());
}
« src/JsEngine.cpp ('K') | « test/ConsoleJsObject.cpp ('k') | test/FilterEngineStubs.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld