void run() { ASSERT_EQUALS( "ZWxp" , base64::encode( "eli" , 3 ) ); ASSERT_EQUALS( "ZWxpb3Rz" , base64::encode( "eliots" , 6 ) ); ASSERT_EQUALS( "ZWxpb3Rz" , base64::encode( "eliots" ) ); ASSERT_EQUALS( "ZQ==" , base64::encode( "e" , 1 ) ); ASSERT_EQUALS( "ZWw=" , base64::encode( "el" , 2 ) ); roundTrip( "e" ); roundTrip( "el" ); roundTrip( "eli" ); roundTrip( "elio" ); roundTrip( "eliot" ); roundTrip( "eliots" ); roundTrip( "eliotsz" ); unsigned char z[] = { 0x1 , 0x2 , 0x3 , 0x4 }; roundTrip( z , 4 ); unsigned char y[] = { 0x01, 0x10, 0x83, 0x10, 0x51, 0x87, 0x20, 0x92, 0x8B, 0x30, 0xD3, 0x8F, 0x41, 0x14, 0x93, 0x51, 0x55, 0x97, 0x61, 0x96, 0x9B, 0x71, 0xD7, 0x9F, 0x82, 0x18, 0xA3, 0x92, 0x59, 0xA7, 0xA2, 0x9A, 0xAB, 0xB2, 0xDB, 0xAF, 0xC3, 0x1C, 0xB3, 0xD3, 0x5D, 0xB7, 0xE3, 0x9E, 0xBB, 0xF3, 0xDF, 0xBF }; roundTrip( y , 4 ); roundTrip( y , 40 ); }
TEST_F(AnimationLengthBoxStyleInterpolationTest, SingleUnitBox) { RefPtrWillBeRawPtr<CSSPrimitiveValue> leftPx = CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> rightPx = CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> topPx = CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> bottomPx = CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSQuadValue::create(topPx.release(), rightPx.release(), bottomPx.release(), leftPx.release(), CSSQuadValue::SerializeAsRect)); testQuadValue(value, 10, 10, 10, 10, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> leftPer = CSSPrimitiveValue::create(30, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSPrimitiveValue> rightPer = CSSPrimitiveValue::create(30, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSPrimitiveValue> topPer = CSSPrimitiveValue::create(30, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSPrimitiveValue> bottomPer = CSSPrimitiveValue::create(30, CSSPrimitiveValue::UnitType::Percentage); value = roundTrip(CSSQuadValue::create(topPer.release(), rightPer.release(), bottomPer.release(), leftPer.release(), CSSQuadValue::SerializeAsRect)); testQuadValue(value, 30, 30, 30, 30, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSPrimitiveValue> leftEms = CSSPrimitiveValue::create(-10, CSSPrimitiveValue::UnitType::Ems); RefPtrWillBeRawPtr<CSSPrimitiveValue> rightEms = CSSPrimitiveValue::create(-10, CSSPrimitiveValue::UnitType::Ems); RefPtrWillBeRawPtr<CSSPrimitiveValue> topEms = CSSPrimitiveValue::create(-10, CSSPrimitiveValue::UnitType::Ems); RefPtrWillBeRawPtr<CSSPrimitiveValue> bottomEms = CSSPrimitiveValue::create(-10, CSSPrimitiveValue::UnitType::Ems); value = roundTrip(CSSQuadValue::create(topEms.release(), rightEms.release(), bottomEms.release(), leftEms.release(), CSSQuadValue::SerializeAsRect)); testQuadValue(value, -10, -10, -10, -10, CSSPrimitiveValue::UnitType::Ems); }
TEST_F(LengthPairStyleInterpolationTest, ZeroTest) { RefPtrWillBeRawPtr<CSSPrimitiveValue> firstPx = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> secondPx = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSValuePair> pairPx = CSSValuePair::create(firstPx.release(), secondPx.release(), CSSValuePair::KeepIdenticalValues); RefPtrWillBeRawPtr<CSSValue> value1 = roundTrip(pairPx.release(), RangeNonNegative); testPrimitiveValue(value1, 0, 0, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> firstPc = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSPrimitiveValue> secondPc = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSValuePair> pairPc = CSSValuePair::create(firstPc.release(), secondPc.release(), CSSValuePair::KeepIdenticalValues); RefPtrWillBeRawPtr<CSSValue> value2 = roundTrip(pairPc.release(), RangeNonNegative); testPrimitiveValue(value2, 0, 0, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSPrimitiveValue> firstEms = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Ems); RefPtrWillBeRawPtr<CSSPrimitiveValue> secondEms = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Ems); RefPtrWillBeRawPtr<CSSValuePair> pairEms = CSSValuePair::create(firstEms.release(), secondEms.release(), CSSValuePair::KeepIdenticalValues); RefPtrWillBeRawPtr<CSSValue> value3 = roundTrip(pairEms.release(), RangeNonNegative); testPrimitiveValue(value3, 0, 0, CSSPrimitiveValue::UnitType::Ems); RefPtrWillBeRawPtr<CSSPrimitiveValue> firstPcNeg = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSPrimitiveValue> secondPcNeg = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSValuePair> pairPcNeg = CSSValuePair::create(firstPcNeg.release(), secondPcNeg.release(), CSSValuePair::KeepIdenticalValues); RefPtrWillBeRawPtr<CSSValue> value4 = roundTrip(pairPcNeg.release(), RangeAll); testPrimitiveValue(value4, 0, 0, CSSPrimitiveValue::UnitType::Percentage); }
TEST_F(AnimationLengthStyleInterpolationTest, ZeroLength) { RefPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_PX)); testPrimitiveValue(value, 0, CSSPrimitiveValue::CSS_PX); value = roundTrip(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_EMS)); testPrimitiveValue(value, 0, CSSPrimitiveValue::CSS_PX); }
TEST_F(AnimationLengthStyleInterpolationTest, SingleUnit) { RefPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_PX)); testPrimitiveValue(value, 10, CSSPrimitiveValue::CSS_PX); value = roundTrip(CSSPrimitiveValue::create(30, CSSPrimitiveValue::CSS_PERCENTAGE)); testPrimitiveValue(value, 30, CSSPrimitiveValue::CSS_PERCENTAGE); value = roundTrip(CSSPrimitiveValue::create(-10, CSSPrimitiveValue::CSS_EMS)); testPrimitiveValue(value, -10, CSSPrimitiveValue::CSS_EMS); }
TEST_F(AnimationDoubleStyleInterpolationTest, AngleValue) { RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_DEG)); testPrimitiveValue(value, 10, CSSPrimitiveValue::CSS_DEG); value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_RAD)); testPrimitiveValue(value, rad2deg(10.0), CSSPrimitiveValue::CSS_DEG); value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_GRAD)); testPrimitiveValue(value, grad2deg(10.0), CSSPrimitiveValue::CSS_DEG); }
TEST_F(AnimationLengthStyleInterpolationTest, SingleUnit) { RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Pixels)); TEST_PRIMITIVE_VALUE(value, 10, CSSPrimitiveValue::UnitType::Pixels); value = roundTrip(CSSPrimitiveValue::create(30, CSSPrimitiveValue::UnitType::Percentage)); TEST_PRIMITIVE_VALUE(value, 30, CSSPrimitiveValue::UnitType::Percentage); value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Ems)); TEST_PRIMITIVE_VALUE(value, 10, CSSPrimitiveValue::UnitType::Ems); }
TEST_F(AnimationLengthStyleInterpolationTest, ZeroLength) { RefPtrWillBeRawPtr<CSSValue> value1 = roundTrip(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Pixels)); TEST_PRIMITIVE_VALUE(value1, 0, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSValue> value2 = roundTrip(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Percentage)); TEST_PRIMITIVE_VALUE(value2, 0, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSValue> value3 = roundTrip(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Ems)); TEST_PRIMITIVE_VALUE(value3, 0, CSSPrimitiveValue::UnitType::Ems); }
TEST_F(LengthPairStyleInterpolationTest, MultipleValueTest) { RefPtrWillBeRawPtr<CSSPrimitiveValue> firstPx = CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> secondPx = CSSPrimitiveValue::create(20, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSValuePair> pairPx = CSSValuePair::create(firstPx.release(), secondPx.release(), CSSValuePair::KeepIdenticalValues); RefPtrWillBeRawPtr<CSSValue> value5 = roundTrip(pairPx.release(), RangeNonNegative); testPrimitiveValue(value5, 10, 20, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> firstPc = CSSPrimitiveValue::create(30, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSPrimitiveValue> secondPc = CSSPrimitiveValue::create(-30, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSValuePair> pairPc = CSSValuePair::create(firstPc.release(), secondPc.release(), CSSValuePair::KeepIdenticalValues); RefPtrWillBeRawPtr<CSSValue> value6 = roundTrip(pairPc.release(), RangeNonNegative); testPrimitiveValue(value6, 30, 0, CSSPrimitiveValue::UnitType::Percentage); }
TEST_F(AnimationLengthBoxStyleInterpolationTest, ZeroLengthBox) { RefPtrWillBeRawPtr<CSSPrimitiveValue> left = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> right = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> top = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> bottom = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSQuadValue::create(top, right, bottom, left, CSSQuadValue::SerializeAsRect)); testQuadValue(value, 0, 0, 0, 0, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> leftEms = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Ems); RefPtrWillBeRawPtr<CSSPrimitiveValue> rightEms = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Ems); RefPtrWillBeRawPtr<CSSPrimitiveValue> topEms = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Ems); RefPtrWillBeRawPtr<CSSPrimitiveValue> bottomEms = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Ems); value = roundTrip(CSSQuadValue::create(topEms.release(), rightEms.release(), bottomEms.release(), leftEms.release(), CSSQuadValue::SerializeAsRect)); testQuadValue(value, 0, 0, 0, 0, CSSPrimitiveValue::UnitType::Ems); }
TEST_F(AnimationLengthBoxStyleInterpolationTest, MultipleValues) { RefPtrWillBeRawPtr<CSSPrimitiveValue> leftPx = CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> rightPx = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> topPx = CSSPrimitiveValue::create(20, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> bottomPx = CSSPrimitiveValue::create(40, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSQuadValue::create(topPx.release(), rightPx.release(), bottomPx.release(), leftPx.release(), CSSQuadValue::SerializeAsRect)); testQuadValue(value, 10, 0, 20, 40, CSSPrimitiveValue::UnitType::Pixels); RefPtrWillBeRawPtr<CSSPrimitiveValue> leftPer = CSSPrimitiveValue::create(30, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSPrimitiveValue> rightPer = CSSPrimitiveValue::create(-30, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSPrimitiveValue> topPer = CSSPrimitiveValue::create(30, CSSPrimitiveValue::UnitType::Percentage); RefPtrWillBeRawPtr<CSSPrimitiveValue> bottomPer = CSSPrimitiveValue::create(-30, CSSPrimitiveValue::UnitType::Percentage); value = roundTrip(CSSQuadValue::create(topPer.release(), rightPer.release(), bottomPer.release(), leftPer.release(), CSSQuadValue::SerializeAsRect)); testQuadValue(value, 30, -30, 30, -30, CSSPrimitiveValue::UnitType::Percentage); }
TEST_F(WebKit2UserMessageRoundTripTest, WKString) { WKRetainPtr<WKStringRef> string = adoptWK(WKStringCreateWithUTF8CString("An important string")); roundTrip(string.get()); WKTypeRef roundTrippedTypeRef = recievedBody.get(); WKRetainPtr<WKStringRef> roundTrippedString = static_cast<WKStringRef>(roundTrippedTypeRef); EXPECT_TRUE(WKStringIsEqual(roundTrippedString.get(), string.get())); }
TEST_P(BlobCacheFlattenTest, FlattenOneValue) { unsigned char buf[4] = { 0xee, 0xee, 0xee, 0xee }; mBC->set("abcd", 4, "efgh", 4); roundTrip(); ASSERT_EQ(size_t(4), mBC2->get("abcd", 4, buf, 4)); ASSERT_EQ('e', buf[0]); ASSERT_EQ('f', buf[1]); ASSERT_EQ('g', buf[2]); ASSERT_EQ('h', buf[3]); }
TEST_F(WebKit2UserMessageRoundTripTest, WKURL) { WKRetainPtr<WKURLRef> url = adoptWK(WKURLCreateWithUTF8CString("http://webkit.org/")); roundTrip(url.get()); WKTypeRef roundTrippedTypeRef = recievedBody.get(); WKRetainPtr<WKURLRef> roundTrippedURL = static_cast<WKURLRef>(roundTrippedTypeRef); EXPECT_TRUE(WKURLIsEqual(roundTrippedURL.get(), url.get())); }
int main (void) { struct entry *nNull = (struct entry *) 0; struct entry n1 = { .value = 1, .previous = nNull }; struct entry n2 = { .value = 2, .previous = &n1 }; struct entry n3 = { .value = 3, .previous = &n2 }; n1.next = &n2; n2.next = &n3; n3.next = nNull; roundTrip (&n1); return 0; }
TEST_P(BlobCacheFlattenTest, FlattenFullCache) { // Fill up the entire cache with 1 char key/value pairs. const int maxEntries = MAX_TOTAL_SIZE / 2; for (int i = 0; i < maxEntries; i++) { uint8_t k = i; mBC->set(&k, 1, &k, 1); } roundTrip(); // Verify the deserialized cache for (int i = 0; i < maxEntries; i++) { uint8_t k = i; uint8_t v = 0xee; ASSERT_EQ(size_t(1), mBC2->get(&k, 1, &v, 1)); ASSERT_EQ(k, v); } }
} }; template <typename T> T roundTrip(const T& arg) { std::vector<unsigned char> vec; auto inserter = std::back_inserter(vec); serialize(arg, inserter); auto res = vec.begin(); return deserialize<T>(res); } TEST_CASE( "Serializing longs", "[serialize]" ) { REQUIRE( roundTrip( 10l) == 10l ); REQUIRE( roundTrip(999l) == 999l ); REQUIRE( roundTrip(-20l) == -20l ); REQUIRE( roundTrip( 0l) == 0l ); } TEST_CASE( "Serializing characters", "[serialize]" ) { REQUIRE( roundTrip('a' ) == 'a' ); REQUIRE( roundTrip('9' ) == '9' ); REQUIRE( roundTrip('.' ) == '.' ); REQUIRE( roundTrip('\0') == '\0' ); REQUIRE( roundTrip((char)-1) == (char)-1 );
TEST_F(AnimationDoubleStyleInterpolationTest, ZeroValue) { RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_NUMBER)); testPrimitiveValue(value, 0, CSSPrimitiveValue::CSS_NUMBER); }