diff options
Diffstat (limited to 'tests/unit/unittest/qmltypesparser-test.cpp')
-rw-r--r-- | tests/unit/unittest/qmltypesparser-test.cpp | 83 |
1 files changed, 81 insertions, 2 deletions
diff --git a/tests/unit/unittest/qmltypesparser-test.cpp b/tests/unit/unittest/qmltypesparser-test.cpp index cfb608e5ce..1595591b40 100644 --- a/tests/unit/unittest/qmltypesparser-test.cpp +++ b/tests/unit/unittest/qmltypesparser-test.cpp @@ -481,8 +481,6 @@ TEST_F(QmlTypesParser, Enumerations) TEST_F(QmlTypesParser, EnumerationIsExportedAsType) { - ModuleId qmlModuleId = storage.moduleId("QML"); - ModuleId qtQmlModuleId = storage.moduleId("QtQml"); QString source{R"(import QtQuick.tooling 1.2 Module{ Component { name: "QObject" @@ -526,6 +524,87 @@ TEST_F(QmlTypesParser, EnumerationIsExportedAsType) _)); } +TEST_F(QmlTypesParser, EnumerationIsExportedAsTypeWithAlias) +{ + QString source{R"(import QtQuick.tooling 1.2 + Module{ + Component { name: "QObject" + Enum { + name: "NamedColorSpaces" + alias: "NamedColorSpace" + values: [ + "Unknown", + "SRgb", + "AdobeRgb", + "DisplayP3", + ] + } + exports: ["QML/QtObject 1.0", "QtQml/QtObject 2.1"] + }})"}; + + parser.parse(source, imports, types, projectData); + + ASSERT_THAT(types, + UnorderedElementsAre( + AllOf(IsType("QObject::NamedColorSpaces", + Storage::ImportedType{}, + Storage::TypeAccessSemantics::Value | Storage::TypeAccessSemantics::IsEnum, + qmltypesFileSourceId), + Field(&Storage::Type::exportedTypes, + UnorderedElementsAre(IsExportedType(qtQmlNativeModuleId, + "QObject::NamedColorSpace", + Storage::Version{}), + IsExportedType(qtQmlNativeModuleId, + "QObject::NamedColorSpaces", + Storage::Version{})))), + _)); +} + +TEST_F(QmlTypesParser, EnumerationIsExportedAsTypeWithAliasToo) +{ + QString source{R"(import QtQuick.tooling 1.2 + Module{ + Component { name: "QObject" + Enum { + name: "NamedColorSpaces" + alias: "NamedColorSpace" + values: [ + "Unknown", + "SRgb", + "AdobeRgb", + "DisplayP3", + ] + } + Enum { + name: "NamedColorSpace" + values: [ + "Unknown", + "SRgb", + "AdobeRgb", + "DisplayP3", + ] + } + exports: ["QML/QtObject 1.0", "QtQml/QtObject 2.1"] + }})"}; + + parser.parse(source, imports, types, projectData); + + ASSERT_THAT(types, + UnorderedElementsAre( + AllOf(IsType("QObject::NamedColorSpaces", + Storage::ImportedType{}, + Storage::TypeAccessSemantics::Value | Storage::TypeAccessSemantics::IsEnum, + qmltypesFileSourceId), + Field(&Storage::Type::exportedTypes, + UnorderedElementsAre(IsExportedType(qtQmlNativeModuleId, + "QObject::NamedColorSpace", + Storage::Version{}), + IsExportedType(qtQmlNativeModuleId, + "QObject::NamedColorSpaces", + Storage::Version{})))), + _)); +} + TEST_F(QmlTypesParser, EnumerationIsReferencedByQualifiedName) { QString source{R"(import QtQuick.tooling 1.2 |