summaryrefslogtreecommitdiff
path: root/test/fixtures/mock_file_source.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/fixtures/mock_file_source.cpp')
-rw-r--r--test/fixtures/mock_file_source.cpp69
1 files changed, 0 insertions, 69 deletions
diff --git a/test/fixtures/mock_file_source.cpp b/test/fixtures/mock_file_source.cpp
deleted file mode 100644
index 078271a422..0000000000
--- a/test/fixtures/mock_file_source.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#include "mock_file_source.hpp"
-#include <mbgl/util/io.hpp>
-#include <mbgl/util/chrono.hpp>
-
-namespace mbgl {
-
-class MockFileRequest : public FileRequest {
-public:
- MockFileRequest(MockFileSource& fileSource_)
- : fileSource(fileSource_) {
- }
-
- ~MockFileRequest() {
- fileSource.pending.erase(this);
- }
-
- MockFileSource& fileSource;
-};
-
-MockFileSource::MockFileSource(Type type_, const std::string& match_)
- : type(type_), match(match_) {
- timer.start(Milliseconds(10), Milliseconds(10), [this] {
- // Explicit move to avoid iterator invalidation if ~MockFileRequest gets called within the loop.
- auto pending_ = std::move(pending);
- for (auto& pair : pending_) {
- respond(pair.second.first, pair.second.second);
- }
- });
-}
-
-MockFileSource::~MockFileSource() {
- timer.stop();
-}
-
-void MockFileSource::respond(Resource resource, Callback callback) const {
- if (type == Type::Success || resource.url.find(match) == std::string::npos) {
- Response res;
- try {
- res.data = std::make_shared<const std::string>(util::read_file(resource.url));
- } catch (const std::exception& err) {
- res.error = std::make_unique<Response::Error>(Response::Error::Reason::Other, err.what());
- }
- callback(res);
- } else if (type == Type::RequestFail) {
- Response res;
- res.error = std::make_unique<Response::Error>(Response::Error::Reason::Other, "Failed by the test case");
- callback(res);
- } else if (type == Type::RequestWithCorruptedData) {
- Response res;
- auto data = std::make_shared<std::string>(util::read_file(resource.url));
- data->insert(0, "CORRUPTED");
- res.data = std::move(data);
- callback(res);
- }
-}
-
-std::unique_ptr<FileRequest> MockFileSource::request(const Resource& resource, Callback callback) {
- auto req = std::make_unique<MockFileRequest>(*this);
-
- pending.emplace(req.get(), std::make_pair(resource, callback));
-
- if (requestEnqueuedCallback && resource.url.find(match) != std::string::npos) {
- requestEnqueuedCallback();
- }
-
- return std::move(req);
-}
-
-} // namespace mbgl