Index: third_party/WebKit/Source/bindings/core/v8/IDLTypesTest.cpp |
diff --git a/third_party/WebKit/Source/bindings/core/v8/IDLTypesTest.cpp b/third_party/WebKit/Source/bindings/core/v8/IDLTypesTest.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7115652f6e8be09b261294966d380ccfc63c00b6 |
--- /dev/null |
+++ b/third_party/WebKit/Source/bindings/core/v8/IDLTypesTest.cpp |
@@ -0,0 +1,122 @@ |
+// Copyright (c) 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "bindings/core/v8/IDLTypes.h" |
+ |
+#include <type_traits> |
+#include "bindings/core/v8/DictionarySequenceOrDictionary.h" |
+#include "bindings/core/v8/V8InternalDictionary.h" |
+#include "core/dom/Element.h" |
+#include "platform/heap/Handle.h" |
+ |
+// No gtest tests; only static_assert checks. |
+ |
+namespace blink { |
+ |
+namespace { |
+ |
+static_assert(std::is_base_of<IDLBase, IDLBoolean>::value, |
+ "IDLBoolean inherits from IDLBase"); |
+static_assert(std::is_same<IDLBoolean::ImplType, bool>::value, |
+ "IDLBoolean's ImplType is bool"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLByte>::value, |
+ "IDLByte inherits from IDLBase"); |
+static_assert(std::is_same<IDLByte::ImplType, int8_t>::value, |
+ "IDLByte's ImplType is int8_t"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLOctet>::value, |
+ "IDLOctet inherits from IDLBase"); |
+static_assert(std::is_same<IDLOctet::ImplType, uint8_t>::value, |
+ "IDLOctet's ImplType is int16_t"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLShort>::value, |
+ "IDLShort inherits from IDLBase"); |
+static_assert(std::is_same<IDLShort::ImplType, int16_t>::value, |
+ "IDLShort's ImplType is uint16_t"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLUnsignedShort>::value, |
+ "IDLUnsignedShort inherits from IDLBase"); |
+static_assert(std::is_same<IDLUnsignedShort::ImplType, uint16_t>::value, |
+ "IDLUnsignedShort's ImplType is uint16_t"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLLong>::value, |
+ "IDLLong inherits from IDLBase"); |
+static_assert(std::is_same<IDLLong::ImplType, int32_t>::value, |
+ "IDLLong's ImplType is int32_t"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLUnsignedLong>::value, |
+ "IDLUnsignedLong inherits from IDLBase"); |
+static_assert(std::is_same<IDLUnsignedLong::ImplType, uint32_t>::value, |
+ "IDLUnsignedLong's ImplType is uint32_t"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLLongLong>::value, |
+ "IDLLongLong inherits from IDLBase"); |
+static_assert(std::is_same<IDLLongLong::ImplType, int64_t>::value, |
+ "IDLLongLong's ImplType is int64_t"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLUnsignedLongLong>::value, |
+ "IDLUnsignedLongLong inherits from IDLBase"); |
+static_assert(std::is_same<IDLUnsignedLongLong::ImplType, uint64_t>::value, |
+ "IDLUnsignedLongLong's ImplType is uint64_t"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLByteString>::value, |
+ "IDLByteString inherits from IDLBase"); |
+static_assert(std::is_same<IDLByteString::ImplType, String>::value, |
+ "IDLByteString's ImplType is String"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLString>::value, |
+ "IDLString inherits from IDLBase"); |
+static_assert(std::is_same<IDLString::ImplType, String>::value, |
+ "IDLString's ImplType is String"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLUSVString>::value, |
+ "IDLUSVString inherits from IDLBase"); |
+static_assert(std::is_same<IDLUSVString::ImplType, String>::value, |
+ "IDLUSVString's ImplType is String"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLDouble>::value, |
+ "IDLDouble inherits from IDLBase"); |
+static_assert(std::is_same<IDLDouble::ImplType, double>::value, |
+ "IDLDouble's ImplType is double"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLUnrestrictedDouble>::value, |
+ "IDLUnrestrictedDouble inherits from IDLBase"); |
+static_assert(std::is_same<IDLUnrestrictedDouble::ImplType, double>::value, |
+ "IDLUnrestrictedDouble's ImplType is double"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLFloat>::value, |
+ "IDLFloat inherits from IDLBase"); |
+static_assert(std::is_same<IDLFloat::ImplType, float>::value, |
+ "IDLFloat's ImplType is float"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLUnrestrictedFloat>::value, |
+ "IDLUnrestrictedFloat inherits from IDLBase"); |
+static_assert(std::is_same<IDLUnrestrictedFloat::ImplType, float>::value, |
+ "IDLUnrestrictedFloat's ImplType is float"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLPromise>::value, |
+ "IDLPromise inherits from IDLBase"); |
+static_assert(std::is_same<IDLPromise::ImplType, ScriptPromise>::value, |
+ "IDLPromise's ImplType is ScriptPromise"); |
+ |
+static_assert(std::is_base_of<IDLBase, IDLSequence<IDLByte>>::value, |
+ "IDLSequence inherits from IDLBase"); |
+static_assert( |
+ std::is_same<IDLSequence<IDLByte>::ImplType, Vector<int8_t>>::value, |
+ "IDLSequence<IDLByte> produces a Vector"); |
+static_assert(std::is_same<IDLSequence<Element>::ImplType, |
+ HeapVector<Member<Element>>>::value, |
+ "IDLSequence<GC-type>> produces a HeapVector<Member<>>"); |
+static_assert(std::is_same<IDLSequence<InternalDictionary>::ImplType, |
+ HeapVector<InternalDictionary>>::value, |
+ "IDLSequence<dictionary type> produces a HeapVector"); |
+static_assert( |
+ std::is_same<IDLSequence<DictionarySequenceOrDictionary>::ImplType, |
+ HeapVector<DictionarySequenceOrDictionary>>::value, |
+ "IDLSequence<union type> produces a HeapVector"); |
+ |
+} // namespace |
+ |
+} // namespace blink |