Skip to content

Commit c466e42

Browse files
committed
Add tests for ScratchProject
1 parent 761ebb0 commit c466e42

File tree

1 file changed

+34
-3
lines changed

1 file changed

+34
-3
lines changed

test/load_project/load_project_test.cpp

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "scratch/stage.h"
33
#include "scratch/sprite.h"
44
#include "engine/engine.h"
5+
#include "scratchproject.h"
56
#include "../common.h"
67

78
#define ASSERT_VAR(target, varName) \
@@ -28,13 +29,15 @@ using namespace libscratchcpp;
2829

2930
static Scratch3Reader s3reader;
3031
static const std::vector<IProjectReader *> readers = { &s3reader };
31-
static const std::unordered_map<IProjectReader *, std::string> fileExtensions = { { &s3reader, ".sb3" } };
32+
static const std::vector<ScratchProject::Version> scratchVersions = { ScratchProject::Version::Scratch3 };
33+
static const std::vector<std::string> fileExtensions = { ".sb3" };
3234

3335
TEST(LoadProjectTest, EmptyProject)
3436
{
37+
int i = 0;
3538
for (auto reader : readers) {
3639
reader->clear();
37-
reader->setFileName("empty_project" + fileExtensions.at(reader));
40+
reader->setFileName("empty_project" + fileExtensions[i]);
3841

3942
ASSERT_TRUE(reader->load());
4043
ASSERT_TRUE(reader->isValid());
@@ -64,14 +67,17 @@ TEST(LoadProjectTest, EmptyProject)
6467
ASSERT_FALSE(backdrop.assetId().empty());
6568
ASSERT_EQ(backdrop.md5ext(), backdrop.assetId() + ".svg");
6669
ASSERT_EQ(backdrop.dataFormat(), "svg");
70+
71+
i++;
6772
}
6873
}
6974

7075
TEST(LoadProjectTest, LoadTestProject)
7176
{
77+
int i = 0;
7278
for (auto reader : readers) {
7379
reader->clear();
74-
reader->setFileName("load_test" + fileExtensions.at(reader));
80+
reader->setFileName("load_test" + fileExtensions[i]);
7581

7682
ASSERT_TRUE(reader->load());
7783
ASSERT_TRUE(reader->isValid());
@@ -258,5 +264,30 @@ TEST(LoadProjectTest, LoadTestProject)
258264
// Balloon1: lists
259265
ASSERT_LIST(sprite2, "list2");
260266
ASSERT_EQ(GET_LIST(sprite2, "list2")->toString(), "0 4 3 4 1 5 6 9 4 8");
267+
268+
i++;
269+
}
270+
}
271+
272+
TEST(LoadProjectTest, ScratchProjectTest)
273+
{
274+
int i = 0;
275+
for (auto version : scratchVersions) {
276+
std::string name = "load_test" + fileExtensions[i];
277+
ScratchProject p(name, version);
278+
ASSERT_EQ(p.fileName(), name);
279+
ASSERT_EQ(p.scratchVersion(), version);
280+
ASSERT_TRUE(p.load());
281+
282+
i++;
261283
}
262284
}
285+
286+
TEST(LoadProjectTest, ScratchProjectInvalidTest)
287+
{
288+
std::string name = "load_test.sb3";
289+
ScratchProject p(name, ScratchProject::Version::Invalid);
290+
ASSERT_EQ(p.fileName(), name);
291+
ASSERT_EQ(p.scratchVersion(), ScratchProject::Version::Invalid);
292+
ASSERT_FALSE(p.load());
293+
}

0 commit comments

Comments
 (0)