| /* |
| * Copyright 2020 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #include "experimental/skrive/src/reader/StreamReader.h" |
| #include "tests/Test.h" |
| |
| using namespace skrive::internal; |
| |
| DEF_TEST(SkRive_JsonReader, reporter) { |
| static constexpr char json[] = R"({ |
| "version": 24, |
| "artboards": [ |
| { |
| "name" : "artboard 1", |
| "translation" : [ 24, 42 ], |
| "width" : 500, |
| "height" : 250, |
| "origin" : [ 100, 100 ], |
| "clipContents": true, |
| "color" : [ 1, 1, 0, 1], |
| "type" : "artboard" |
| } |
| ] |
| })"; |
| |
| auto sr = StreamReader::Make(SkData::MakeWithoutCopy(json, strlen(json))); |
| |
| REPORTER_ASSERT(reporter, sr); |
| REPORTER_ASSERT(reporter, sr->readUInt32("version") == 24); |
| { |
| StreamReader::AutoBlock ab(sr); |
| REPORTER_ASSERT(reporter, ab.type() == StreamReader::BlockType::kArtboards); |
| REPORTER_ASSERT(reporter, sr->readLength16() == 1); |
| |
| { |
| StreamReader::AutoBlock ab(sr); |
| REPORTER_ASSERT(reporter, ab.type() == StreamReader::BlockType::kActorArtboard); |
| REPORTER_ASSERT(reporter, sr->readString("name").equals("artboard 1")); |
| REPORTER_ASSERT(reporter, sr->readV2("translation") == (SkV2{24,42})); |
| REPORTER_ASSERT(reporter, sr->readFloat("width" ) == 500); |
| REPORTER_ASSERT(reporter, sr->readFloat("height") == 250); |
| REPORTER_ASSERT(reporter, sr->readV2("origin") == (SkV2{100,100})); |
| REPORTER_ASSERT(reporter, sr->readBool("clipContents")); |
| REPORTER_ASSERT(reporter, sr->readColor("color") == (SkColor4f{1,1,0,1})); |
| |
| REPORTER_ASSERT(reporter, sr->readString("INVALID").equals("")); |
| REPORTER_ASSERT(reporter, sr->readFloat("INVALID" ) == 0); |
| REPORTER_ASSERT(reporter, !sr->readBool("INVALID")); |
| } |
| { |
| StreamReader::AutoBlock ab(sr); |
| REPORTER_ASSERT(reporter, ab.type() == StreamReader::BlockType::kEoB); |
| } |
| } |
| { |
| StreamReader::AutoBlock ab(sr); |
| REPORTER_ASSERT(reporter, ab.type() == StreamReader::BlockType::kEoB); |
| } |
| } |