diff options
author | Thiago Macieira <thiago.macieira@nokia.com> | 2010-02-25 14:53:09 (GMT) |
---|---|---|
committer | Thiago Macieira <thiago.macieira@nokia.com> | 2010-02-25 14:53:09 (GMT) |
commit | 8d720825279c8bf06d28b1f756031402f117002b (patch) | |
tree | 5ea180f93387223c532d76f53d74054ea7a6f2b4 /tests/auto/declarative/qdeclarativelanguage | |
parent | 8928e37c8b1b375e74c5981915c034123de11b3d (diff) | |
parent | d6197028818e51e78249b029a823fde1b0ffde03 (diff) | |
download | Qt-8d720825279c8bf06d28b1f756031402f117002b.zip Qt-8d720825279c8bf06d28b1f756031402f117002b.tar.gz Qt-8d720825279c8bf06d28b1f756031402f117002b.tar.bz2 |
Merge branch 'master' of git:qt/qt-qml
Conflicts:
src/declarative/graphicsitems/qdeclarativeparticles.cpp
Diffstat (limited to 'tests/auto/declarative/qdeclarativelanguage')
291 files changed, 3334 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/Alias.qml b/tests/auto/declarative/qdeclarativelanguage/data/Alias.qml new file mode 100644 index 0000000..55aa231 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/Alias.qml @@ -0,0 +1,8 @@ +import Qt 4.6 + +QtObject { + id: root + property int value: 1892 + property alias aliasValue: root.value +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml b/tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml new file mode 100644 index 0000000..6362b2d --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml @@ -0,0 +1,9 @@ +import Test 1.0 +import Qt 4.6 + +QtObject { + property var other + other: MyTypeObject { id: obj } + property alias enumAlias: obj.enumProperty; +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml b/tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml new file mode 100644 index 0000000..d1e78f8 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml @@ -0,0 +1,12 @@ +import Test 1.0 +import Qt 4.6 + +QtObject { + property alias obj : otherObj + property var child + child: QtObject { + id: otherObj + property int myValue: 10 + } +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/Alias4.qml b/tests/auto/declarative/qdeclarativelanguage/data/Alias4.qml new file mode 100644 index 0000000..573674c --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/Alias4.qml @@ -0,0 +1,5 @@ +import Test 1.0 +import Qt 4.6 + +Alias3 {} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/ComponentComposite.qml b/tests/auto/declarative/qdeclarativelanguage/data/ComponentComposite.qml new file mode 100644 index 0000000..05fbc3f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/ComponentComposite.qml @@ -0,0 +1,5 @@ +import Qt 4.6 + +Component { + QtObject {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/CompositeType.qml b/tests/auto/declarative/qdeclarativelanguage/data/CompositeType.qml new file mode 100644 index 0000000..99d010f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/CompositeType.qml @@ -0,0 +1,4 @@ +import Qt 4.6 + +QtObject { +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/CompositeType2.qml b/tests/auto/declarative/qdeclarativelanguage/data/CompositeType2.qml new file mode 100644 index 0000000..86210e9 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/CompositeType2.qml @@ -0,0 +1,5 @@ +import Test 1.0 + +MyQmlObject { +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/CompositeType3.qml b/tests/auto/declarative/qdeclarativelanguage/data/CompositeType3.qml new file mode 100644 index 0000000..d08f35b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/CompositeType3.qml @@ -0,0 +1,5 @@ +import Qt 4.6 + +QtObject { + property int a +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/CompositeType4.qml b/tests/auto/declarative/qdeclarativelanguage/data/CompositeType4.qml new file mode 100644 index 0000000..a6a8168 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/CompositeType4.qml @@ -0,0 +1,6 @@ +import Test 1.0 + +MyQmlObject { + property int a +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/DynamicPropertiesNestedType.qml b/tests/auto/declarative/qdeclarativelanguage/data/DynamicPropertiesNestedType.qml new file mode 100644 index 0000000..aefbf9a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/DynamicPropertiesNestedType.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +QtObject { + property int super_a: 10 + property int super_c: 14 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml b/tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml new file mode 100644 index 0000000..dc3b382 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml @@ -0,0 +1,9 @@ +import Test 1.0 +import Qt 4.6 + +QtObject { + property var child + child: QtObject { id: obj } + property alias objAlias: obj; +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/I18n.qml b/tests/auto/declarative/qdeclarativelanguage/data/I18n.qml new file mode 100644 index 0000000..558c836 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/I18n.qml @@ -0,0 +1,6 @@ +import Test 1.0 + +MyTypeObject { + property int áâãäå: 10 + stringProperty: "Test áâãäå: " + áâãäå +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/I18nType30.qml b/tests/auto/declarative/qdeclarativelanguage/data/I18nType30.qml new file mode 100644 index 0000000..42dbc69 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/I18nType30.qml @@ -0,0 +1,5 @@ +import Test 1.0 + +MyTypeObject { + stringProperty: "Test áâãäå: 30" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/MyComponent.qml b/tests/auto/declarative/qdeclarativelanguage/data/MyComponent.qml new file mode 100644 index 0000000..1a23277 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/MyComponent.qml @@ -0,0 +1,6 @@ +import Test 1.0 + +MyQmlObject { + property real x; + property real y; +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/MyCompositeValueSource.qml b/tests/auto/declarative/qdeclarativelanguage/data/MyCompositeValueSource.qml new file mode 100644 index 0000000..e620e26 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/MyCompositeValueSource.qml @@ -0,0 +1,6 @@ +import Test 1.0 + +MyPropertyValueSource { + property int x +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/MyContainerComponent.qml b/tests/auto/declarative/qdeclarativelanguage/data/MyContainerComponent.qml new file mode 100644 index 0000000..61f54c5 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/MyContainerComponent.qml @@ -0,0 +1,5 @@ +import Test 1.0 + +MyContainer { + property int x +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/NestedAlias.qml b/tests/auto/declarative/qdeclarativelanguage/data/NestedAlias.qml new file mode 100644 index 0000000..5155612 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/NestedAlias.qml @@ -0,0 +1,14 @@ +import Qt 4.6 + +QtObject { + property QtObject o1 + property QtObject o2 + + property alias a: object2.a + + o1: QtObject { id: object1 } + o2: QtObject { + id: object2 + property int a: 1923 + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/NestedErrorsType.qml b/tests/auto/declarative/qdeclarativelanguage/data/NestedErrorsType.qml new file mode 100644 index 0000000..5cc8d20 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/NestedErrorsType.qml @@ -0,0 +1,5 @@ +import Qt 4.6 + +Item { + x: "You can't assign a string to a real!" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/OnCompletedType.qml b/tests/auto/declarative/qdeclarativelanguage/data/OnCompletedType.qml new file mode 100644 index 0000000..2889caf --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/OnCompletedType.qml @@ -0,0 +1,8 @@ +import Test 1.0 +import Qt 4.6 + +MyQmlObject { + property int a: Math.max(10, 9) + property int b: 11 + Component.onCompleted: console.log("Completed " + a + " " + b); +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.1.qml new file mode 100644 index 0000000..500b0f6 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.1.qml @@ -0,0 +1,8 @@ +import Test 1.0 +import Qt 4.6 + +QtObject { + id: root + property int value: 10 + property alias valueAlias: root.value +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.2.qml new file mode 100644 index 0000000..5c92270 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.2.qml @@ -0,0 +1,8 @@ +import Test 1.0 + +MyQmlObject { + id: root + property alias aliasObject: root.qmlobjectProperty + + qmlobjectProperty: MyQmlObject { value : 10 } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml new file mode 100644 index 0000000..e059937 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml @@ -0,0 +1,10 @@ +import Qt 4.6 + +QtObject { + property var other + other: Alias { id: myAliasObject } + + property alias value: myAliasObject.aliasValue + property alias value2: myAliasObject.value +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.4.qml new file mode 100644 index 0000000..bd6a769 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.4.qml @@ -0,0 +1,6 @@ +import Test 1.0 + +Alias2 { + enumAlias: MyTypeObject.EnumVal2 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml new file mode 100644 index 0000000..4316d0d --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml @@ -0,0 +1,13 @@ +import Qt 4.6 +import Test 1.0 + +QtObject { + property alias otherAlias: otherObject + + property var other + other: MyQmlObject { + id: otherObject + value: 10 + } +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.6.qml new file mode 100644 index 0000000..e3af230 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.6.qml @@ -0,0 +1,8 @@ +import Qt 4.6 + +QtObject { + property QtObject o; + property alias a: object.a + o: NestedAlias { id: object } +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.7.qml new file mode 100644 index 0000000..a9a57eb --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.7.qml @@ -0,0 +1,14 @@ +import Qt 4.6 + +QtObject { + property QtObject object + property alias aliasedObject: target.object + + object: QtObject { + id: target + + property QtObject object + object: QtObject {} + } +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml new file mode 100644 index 0000000..2b9ad85 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml @@ -0,0 +1,9 @@ +import Qt 4.6 + +QtObject { + property var other + other: Alias3 { id: myAliasObject } + + property int value: myAliasObject.obj.myValue +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml new file mode 100644 index 0000000..a2a41a1 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml @@ -0,0 +1,9 @@ +import Qt 4.6 + +QtObject { + property var other + other: Alias4 { id: myAliasObject } + + property int value: myAliasObject.obj.myValue +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignBasicTypes.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignBasicTypes.qml new file mode 100644 index 0000000..c86c96b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignBasicTypes.qml @@ -0,0 +1,29 @@ +import Test 1.0 +MyTypeObject { + flagProperty: "FlagVal1 | FlagVal3" + enumProperty: "EnumVal2" + stringProperty: "Hello World!" + uintProperty: 10 + intProperty: -19 + realProperty: 23.2 + doubleProperty: -19.7 + floatProperty: 8.5 + colorProperty: "red" + dateProperty: "1982-11-25" + timeProperty: "11:11:31" + timeProperty: "11:11:32" + timeProperty: "11:11:32" + dateTimeProperty: "2009-05-12T13:22:01" + pointProperty: "99,13" + pointFProperty: "-10.1,12.3" + sizeProperty: "99x13" + sizeFProperty: "0.1x0.2" + rectProperty: "9,7,100x200" + rectFProperty: "1000.1,-10.9,400x90.99" + boolProperty: true + variantProperty: "Hello World!" + vectorProperty: "10,1,2.2" + urlProperty: "main.qml" + + objectProperty: MyTypeObject { intProperty: 8 } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignCompositeToType.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignCompositeToType.qml new file mode 100644 index 0000000..f6422bd --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignCompositeToType.qml @@ -0,0 +1,18 @@ +import Qt 4.6 +import Test 1.0 + +QtObject { + property QtObject myProperty + property QtObject myProperty2 + property QtObject myProperty3 + property QtObject myProperty4 + property MyQmlObject myProperty5 + property MyQmlObject myProperty6 + + myProperty: CompositeType {} + myProperty2: CompositeType2 {} + myProperty3: CompositeType3 {} + myProperty4: CompositeType4 {} + myProperty5: CompositeType2 {} + myProperty6: CompositeType4 {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignLiteralSignalProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignLiteralSignalProperty.qml new file mode 100644 index 0000000..399fcea --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignLiteralSignalProperty.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + onLiteralSignal: 10 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToSignal.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToSignal.qml new file mode 100644 index 0000000..789cc66 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToSignal.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + onBasicSignal: MyQmlObject {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml new file mode 100644 index 0000000..0ff9370 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml @@ -0,0 +1,7 @@ +import Test 1.0 +import Qt 4.6 + +QtObject { + property var a; + a: MyQmlObject {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignQmlComponent.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignQmlComponent.qml new file mode 100644 index 0000000..20bdc55 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignQmlComponent.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyContainer { + MyComponent { x: 10; y: 11; } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignSignal.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignSignal.qml new file mode 100644 index 0000000..2a48df8 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignSignal.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyQmlObject { + onBasicSignal: basicSlot() + onBasicParameterizedSignal: basicSlotWithArgs(parameter) +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignTypeExtremes.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignTypeExtremes.qml new file mode 100644 index 0000000..60ede52 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignTypeExtremes.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + uintProperty: 4000000000 + intProperty: -2000000000 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/attachedProperties.qml b/tests/auto/declarative/qdeclarativelanguage/data/attachedProperties.qml new file mode 100644 index 0000000..b46ec34 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/attachedProperties.qml @@ -0,0 +1,8 @@ +import Test 1.0 +import Test 1.0 as Namespace +import Qt 4.6 + +QtObject { + MyQmlObject.value: 10 + Namespace.MyQmlObject.value2: 13 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/autoComponentCreation.qml b/tests/auto/declarative/qdeclarativelanguage/data/autoComponentCreation.qml new file mode 100644 index 0000000..5d00144 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/autoComponentCreation.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyTypeObject { + componentProperty : MyTypeObject { realProperty: 9 } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/autoNotifyConnection.qml b/tests/auto/declarative/qdeclarativelanguage/data/autoNotifyConnection.qml new file mode 100644 index 0000000..640fb54 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/autoNotifyConnection.qml @@ -0,0 +1,6 @@ +import Test 1.0 +MyQmlObject { + property bool receivedNotify : false + onPropertyWithNotifyChanged: { receivedNotify = true; } +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/component.1.errors.txt new file mode 100644 index 0000000..091aad6 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.1.errors.txt @@ -0,0 +1 @@ +3:1:Cannot create empty component specification diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.1.qml new file mode 100644 index 0000000..07e463a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.1.qml @@ -0,0 +1,4 @@ +import Qt 4.6 + +Component { +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/component.2.errors.txt new file mode 100644 index 0000000..76e7656 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.2.errors.txt @@ -0,0 +1 @@ +6:9:id is not unique diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.2.qml new file mode 100644 index 0000000..88e0f73 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.2.qml @@ -0,0 +1,9 @@ +import Qt 4.6 + +Item { + id: myId + Component { + id: myId + QtObject {} + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/component.3.errors.txt new file mode 100644 index 0000000..9a13142 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.3.errors.txt @@ -0,0 +1 @@ +6:9:Invalid component id specification diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.3.qml new file mode 100644 index 0000000..287a959 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.3.qml @@ -0,0 +1,9 @@ +import Qt 4.6 + +Item { + Component { + id: myId + id: myId2 + QtObject {} + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/component.4.errors.txt new file mode 100644 index 0000000..2ab18685 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.4.errors.txt @@ -0,0 +1 @@ +3:1:Invalid component body specification diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.4.qml new file mode 100644 index 0000000..ab1e29b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.4.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +Component { + QtObject {} + QtObject {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/component.5.errors.txt new file mode 100644 index 0000000..e3c2df7 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.5.errors.txt @@ -0,0 +1 @@ +4:5:Component elements may not contain properties other than id diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.5.qml new file mode 100644 index 0000000..629e998 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.5.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +Component { + x: 10 + QtObject {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/component.6.errors.txt new file mode 100644 index 0000000..2b1c6ca --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.6.errors.txt @@ -0,0 +1 @@ +4:5:Invalid component id specification diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.6.qml new file mode 100644 index 0000000..2303ebf --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.6.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +Component { + id: QtObject {} + QtObject {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml b/tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml new file mode 100644 index 0000000..0a7249a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml @@ -0,0 +1,8 @@ +import Qt 4.6 + +QtObject { + property var test + + test: ComponentComposite {} +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/cppnamespace.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/cppnamespace.2.qml new file mode 100644 index 0000000..e3b32ca --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/cppnamespace.2.qml @@ -0,0 +1,5 @@ +import Test 1.0 + +MySecondNamespacedType { + list: [ MyNamespacedType {} ] +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/cppnamespace.qml b/tests/auto/declarative/qdeclarativelanguage/data/cppnamespace.qml new file mode 100644 index 0000000..e1daf3b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/cppnamespace.qml @@ -0,0 +1,4 @@ +import Test 1.0 + +MyNamespacedType { +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/crash2.qml b/tests/auto/declarative/qdeclarativelanguage/data/crash2.qml new file mode 100644 index 0000000..a22c776 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/crash2.qml @@ -0,0 +1,5 @@ +import Qt 4.6 + +QtObject { + objectName: "Hello" + "World" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/customParserIdNotAllowed.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/customParserIdNotAllowed.errors.txt new file mode 100644 index 0000000..43a8bb2 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/customParserIdNotAllowed.errors.txt @@ -0,0 +1 @@ +4:19:ListElement: cannot use reserved "id" property diff --git a/tests/auto/declarative/qdeclarativelanguage/data/customParserIdNotAllowed.qml b/tests/auto/declarative/qdeclarativelanguage/data/customParserIdNotAllowed.qml new file mode 100644 index 0000000..00cc0c4 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/customParserIdNotAllowed.qml @@ -0,0 +1,5 @@ +import Qt 4.6 +ListModel { + ListElement { a: 10 } + ListElement { id: foo; a: 12 } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/customParserTypes.qml b/tests/auto/declarative/qdeclarativelanguage/data/customParserTypes.qml new file mode 100644 index 0000000..cf2f272 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/customParserTypes.qml @@ -0,0 +1,5 @@ +import Qt 4.6 +ListModel { + ListElement { a: 10 } + ListElement { a: 12 } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/customVariantTypes.qml b/tests/auto/declarative/qdeclarativelanguage/data/customVariantTypes.qml new file mode 100644 index 0000000..0263ed2 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/customVariantTypes.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + customType: "10" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/declaredPropertyValues.qml b/tests/auto/declarative/qdeclarativelanguage/data/declaredPropertyValues.qml new file mode 100644 index 0000000..3987a3c --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/declaredPropertyValues.qml @@ -0,0 +1,8 @@ +import Qt 4.6 + +QtObject { + property int a: 10 + property int b: 10 + a + property QtObject c: QtObject {} + property list<QtObject> d: [ QtObject {}, QtObject {} ] +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.errors.txt new file mode 100644 index 0000000..945d51b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.errors.txt @@ -0,0 +1 @@ +7:9:Invalid value in grouped property diff --git a/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.qml b/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.qml new file mode 100644 index 0000000..0fd1404 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.qml @@ -0,0 +1,10 @@ +import Test 1.0 +import Qt 4.6 + +MyTypeObject { + grouped { + script: console.log(1921) + QtObject {} + } +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/defaultPropertyListOrder.qml b/tests/auto/declarative/qdeclarativelanguage/data/defaultPropertyListOrder.qml new file mode 100644 index 0000000..3651511 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/defaultPropertyListOrder.qml @@ -0,0 +1,29 @@ +import Test 1.0 +import Qt 4.6 + +MyContainer { + QtObject { + property int index: 0 + } + + QtObject { + property int index: 1 + } + + children: [ + QtObject { + property int index: 2 + }, + QtObject { + property int index: 3 + } + ] + + QtObject { + property int index: 4 + } + + QtObject { + property int index: 5 + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.errors.txt new file mode 100644 index 0000000..2aea251 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.errors.txt @@ -0,0 +1 @@ +5:5:Incorrectly specified signal diff --git a/tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.qml b/tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.qml new file mode 100644 index 0000000..fb07b9f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.qml @@ -0,0 +1,7 @@ +import Test 1.0 + +MyQmlObject { + onBasicSignal: console.log(1921) + onBasicSignal: console.log(1921) +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/duplicateIDs.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/duplicateIDs.errors.txt new file mode 100644 index 0000000..66241cf --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/duplicateIDs.errors.txt @@ -0,0 +1 @@ +4:19:id is not unique diff --git a/tests/auto/declarative/qdeclarativelanguage/data/duplicateIDs.qml b/tests/auto/declarative/qdeclarativelanguage/data/duplicateIDs.qml new file mode 100644 index 0000000..a993abd --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/duplicateIDs.qml @@ -0,0 +1,6 @@ +import Test 1.0 +MyContainer { + MyQmlObject { id: myID } + MyQmlObject { id: myID } +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml new file mode 100644 index 0000000..85d1052 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml @@ -0,0 +1,8 @@ +import Test 1.0 +import Qt 4.6 +PropertyChanges { + propa: a + 10 + propb: Math.min(a, 10) + propc: MyPropertyValueSource {} + onPropA: a +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.qml new file mode 100644 index 0000000..c80a7c0 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.qml @@ -0,0 +1,13 @@ +import Test 1.0 +import Qt 4.6 +import Qt 4.6 as Qt + +QtObject { + property QtObject objectProperty + property QtObject objectProperty2 + objectProperty2: QtObject {} + + property MyComponent myComponentProperty + property MyComponent myComponentProperty2 + myComponentProperty2: MyComponent {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml new file mode 100644 index 0000000..aef3269 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml @@ -0,0 +1,14 @@ +import Test 1.0 +import Qt 4.6 +QtObject { + default property int intProperty : 10 + property bool boolProperty: false + property double doubleProperty: -10.1 + property real realProperty: -19.9 + property string stringProperty: "Hello World!" + property color colorProperty: "red" + property url urlProperty: "main.qml" + property date dateProperty: "1945-09-02" + property var varProperty: "Hello World!" + property variant variantProperty: 12 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicPropertiesNested.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicPropertiesNested.qml new file mode 100644 index 0000000..7bfab67 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicPropertiesNested.qml @@ -0,0 +1,9 @@ +import Qt 4.6 + +DynamicPropertiesNestedType { + property int a: 13 + property int b: 12 + + super_a: 11 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicSignalsAndSlots.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicSignalsAndSlots.qml new file mode 100644 index 0000000..2a834e8 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicSignalsAndSlots.qml @@ -0,0 +1,10 @@ +import Qt 4.6 +QtObject { + signal signal1 + function slot1() {} + signal signal2 + function slot2() {} + + property int test: 0 + function slot3(a) { console.log(1921); test = a; } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/empty.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/empty.errors.txt new file mode 100644 index 0000000..d416e76 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/empty.errors.txt @@ -0,0 +1,2 @@ +0:0:Expected token `numeric literal' +0:0:Expected a qualified name id diff --git a/tests/auto/declarative/qdeclarativelanguage/data/empty.qml b/tests/auto/declarative/qdeclarativelanguage/data/empty.qml new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/empty.qml diff --git a/tests/auto/declarative/qdeclarativelanguage/data/emptySignal.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/emptySignal.errors.txt new file mode 100644 index 0000000..353bbf5 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/emptySignal.errors.txt @@ -0,0 +1 @@ +4:5:Empty signal assignment diff --git a/tests/auto/declarative/qdeclarativelanguage/data/emptySignal.qml b/tests/auto/declarative/qdeclarativelanguage/data/emptySignal.qml new file mode 100644 index 0000000..4c5a122 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/emptySignal.qml @@ -0,0 +1,6 @@ +import Test 1.0 + +MyQmlObject { + onBasicSignal: " " +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/failingComponent.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/failingComponent.errors.txt new file mode 100644 index 0000000..0cf0ef3 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/failingComponent.errors.txt @@ -0,0 +1 @@ +3:5:Type FailingComponent unavailable diff --git a/tests/auto/declarative/qdeclarativelanguage/data/failingComponentTest.qml b/tests/auto/declarative/qdeclarativelanguage/data/failingComponentTest.qml new file mode 100644 index 0000000..74a6acf --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/failingComponentTest.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyContainer { + FailingComponent {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/fakeDotProperty.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/fakeDotProperty.errors.txt new file mode 100644 index 0000000..3074823 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/fakeDotProperty.errors.txt @@ -0,0 +1 @@ +3:5:Invalid grouped property access diff --git a/tests/auto/declarative/qdeclarativelanguage/data/fakeDotProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/fakeDotProperty.qml new file mode 100644 index 0000000..d971eee --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/fakeDotProperty.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + value.something: "hello" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/finalOverride.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/finalOverride.errors.txt new file mode 100644 index 0000000..49e06cb --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/finalOverride.errors.txt @@ -0,0 +1 @@ +3:5:Cannot override FINAL property diff --git a/tests/auto/declarative/qdeclarativelanguage/data/finalOverride.qml b/tests/auto/declarative/qdeclarativelanguage/data/finalOverride.qml new file mode 100644 index 0000000..a84393a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/finalOverride.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + property int value: 10 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/i18nDeclaredPropertyNames.qml b/tests/auto/declarative/qdeclarativelanguage/data/i18nDeclaredPropertyNames.qml new file mode 100644 index 0000000..558c836 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/i18nDeclaredPropertyNames.qml @@ -0,0 +1,6 @@ +import Test 1.0 + +MyTypeObject { + property int áâãäå: 10 + stringProperty: "Test áâãäå: " + áâãäå +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/i18nDeclaredPropertyUse.qml b/tests/auto/declarative/qdeclarativelanguage/data/i18nDeclaredPropertyUse.qml new file mode 100644 index 0000000..74918e2 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/i18nDeclaredPropertyUse.qml @@ -0,0 +1,3 @@ +I18n { + áâãäå: 15 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/i18nNameSpace.qml b/tests/auto/declarative/qdeclarativelanguage/data/i18nNameSpace.qml new file mode 100644 index 0000000..c0b2f94 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/i18nNameSpace.qml @@ -0,0 +1,5 @@ +import Test 1.0 as Áâãäå + +Áâãäå.MyTypeObject { + stringProperty: "Test áâãäå: 40" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/i18nScript.qml b/tests/auto/declarative/qdeclarativelanguage/data/i18nScript.qml new file mode 100644 index 0000000..942ed90 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/i18nScript.qml @@ -0,0 +1,12 @@ +import Test 1.0 + +MyTypeObject { + Script { + function val() { + var áâãäå = 20 + return "Test áâãäå: " + áâãäå + } + + } + stringProperty: val() +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/i18nStrings.qml b/tests/auto/declarative/qdeclarativelanguage/data/i18nStrings.qml new file mode 100644 index 0000000..764c926 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/i18nStrings.qml @@ -0,0 +1,5 @@ +import Test 1.0 + +MyTypeObject { + stringProperty: "Test áâãäå (5 accented 'a' letters)" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/i18nType.qml b/tests/auto/declarative/qdeclarativelanguage/data/i18nType.qml new file mode 100644 index 0000000..d7954ef --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/i18nType.qml @@ -0,0 +1 @@ +I18nTypeÁâãäå { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/idProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/idProperty.qml new file mode 100644 index 0000000..90c1483 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/idProperty.qml @@ -0,0 +1,8 @@ +import Test 1.0 +MyContainer { + property var object : myObjectId + + MyTypeObject { + id: "myObjectId" + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importNamespaceConflict.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/importNamespaceConflict.errors.txt new file mode 100644 index 0000000..231998d --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/importNamespaceConflict.errors.txt @@ -0,0 +1 @@ +4:1:Namespace Rectangle cannot be used as a type diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importNamespaceConflict.qml b/tests/auto/declarative/qdeclarativelanguage/data/importNamespaceConflict.qml new file mode 100644 index 0000000..cd112af --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/importNamespaceConflict.qml @@ -0,0 +1,4 @@ +import Test 1.0 as Rectangle +import Qt 4.6 + +Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingBuiltIn.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingBuiltIn.errors.txt new file mode 100644 index 0000000..c7d880e --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingBuiltIn.errors.txt @@ -0,0 +1 @@ +1:16:Library import requires a version diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingBuiltIn.qml b/tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingBuiltIn.qml new file mode 100644 index 0000000..23ed566 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingBuiltIn.qml @@ -0,0 +1,7 @@ +import Test as S + +S.MyQmlObject { + property real x; + property real y; +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingInstalled.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingInstalled.errors.txt new file mode 100644 index 0000000..89e58ee --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingInstalled.errors.txt @@ -0,0 +1 @@ +1:35:Library import requires a version diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingInstalled.qml b/tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingInstalled.qml new file mode 100644 index 0000000..97ec222 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingInstalled.qml @@ -0,0 +1,3 @@ +import com.nokia.installedtest as T + +T.InstalledTest {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/inlineQmlComponents.qml b/tests/auto/declarative/qdeclarativelanguage/data/inlineQmlComponents.qml new file mode 100644 index 0000000..478f06a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/inlineQmlComponents.qml @@ -0,0 +1,10 @@ +import Test 1.0 +import Qt 4.6 +MyContainer { + Component { + id: myComponent + MyQmlObject { + value: 11 + } + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/interfaceProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/interfaceProperty.qml new file mode 100644 index 0000000..70879ff --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/interfaceProperty.qml @@ -0,0 +1,5 @@ +import Test 1.0 +import Qt 4.6 +MyQmlObject { + interfaceProperty: MyQmlObject {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/interfaceQList.qml b/tests/auto/declarative/qdeclarativelanguage/data/interfaceQList.qml new file mode 100644 index 0000000..c87dfae --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/interfaceQList.qml @@ -0,0 +1,7 @@ +import Test 1.0 +MyContainer { + qlistInterfaces: [ + MyQmlObject {}, + MyQmlObject {} + ] +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.1.errors.txt new file mode 100644 index 0000000..492bbb4 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.1.errors.txt @@ -0,0 +1 @@ +5:17:Cannot assign to non-existent property "foo" diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.1.qml new file mode 100644 index 0000000..324f79c --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.1.qml @@ -0,0 +1,7 @@ +import Test 1.0 +import Qt 4.6 + +QtObject { + MyQmlObject.foo: 10 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.10.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.10.errors.txt new file mode 100644 index 0000000..ff2409b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.10.errors.txt @@ -0,0 +1 @@ +5:15:Non-existent attached object diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.10.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.10.qml new file mode 100644 index 0000000..b768e9f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.10.qml @@ -0,0 +1,6 @@ +import Test 1.0 as Namespace +import Qt 4.6 + +QtObject { + Namespace.MadeUpClass.foo: 10 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.11.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.11.errors.txt new file mode 100644 index 0000000..fee5050 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.11.errors.txt @@ -0,0 +1 @@ +5:15:Not an attached property name diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.11.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.11.qml new file mode 100644 index 0000000..7b782be --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.11.qml @@ -0,0 +1,7 @@ +import Test 1.0 as Namespace +import Qt 4.6 + +QtObject { + Namespace.madeUpClass.foo: 10 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.2.errors.txt new file mode 100644 index 0000000..34de769 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.2.errors.txt @@ -0,0 +1 @@ +5:27:Cannot assign to non-existent property "foo" diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.2.qml new file mode 100644 index 0000000..1f47c61 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.2.qml @@ -0,0 +1,6 @@ +import Test 1.0 as Namespace +import Qt 4.6 + +QtObject { + Namespace.MyQmlObject.foo: 10 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.3.errors.txt new file mode 100644 index 0000000..05161c4 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.3.errors.txt @@ -0,0 +1 @@ +5:5:Invalid attached object assignment diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.3.qml new file mode 100644 index 0000000..79c2981 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.3.qml @@ -0,0 +1,8 @@ +import Test 1.0 +import Qt 4.6 + +QtObject { + MyQmlObject: 10 +} + + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.4.errors.txt new file mode 100644 index 0000000..a208bcf --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.4.errors.txt @@ -0,0 +1 @@ +5:15:Invalid attached object assignment diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.4.qml new file mode 100644 index 0000000..af0be80 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.4.qml @@ -0,0 +1,7 @@ +import Test 1.0 as Namespace +import Qt 4.6 + +QtObject { + Namespace.MyQmlObject: 10 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.5.errors.txt new file mode 100644 index 0000000..05161c4 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.5.errors.txt @@ -0,0 +1 @@ +5:5:Invalid attached object assignment diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.5.qml new file mode 100644 index 0000000..0546322 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.5.qml @@ -0,0 +1,7 @@ +import Test 1.0 +import Qt 4.6 + +QtObject { + MyQmlObject: QtObject {} +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.6.errors.txt new file mode 100644 index 0000000..6770e1f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.6.errors.txt @@ -0,0 +1 @@ +5:5:Non-existent attached object diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.6.qml new file mode 100644 index 0000000..108109a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.6.qml @@ -0,0 +1,7 @@ +import Test 1.0 +import Qt 4.6 + +QtObject { + Test.MyQmlObject: QtObject {} +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.7.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.7.errors.txt new file mode 100644 index 0000000..6770e1f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.7.errors.txt @@ -0,0 +1 @@ +5:5:Non-existent attached object diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.7.qml new file mode 100644 index 0000000..ccf0353 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.7.qml @@ -0,0 +1,6 @@ +import Test 1.0 +import Qt 4.6 + +QtObject { + MyTypeObject.foo: 10 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.8.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.8.errors.txt new file mode 100644 index 0000000..ff2409b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.8.errors.txt @@ -0,0 +1 @@ +5:15:Non-existent attached object diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.8.qml new file mode 100644 index 0000000..e736379 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.8.qml @@ -0,0 +1,6 @@ +import Test 1.0 as Namespace +import Qt 4.6 + +QtObject { + Namespace.MyTypeObject.foo: 10 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.9.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.9.errors.txt new file mode 100644 index 0000000..6770e1f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.9.errors.txt @@ -0,0 +1 @@ +5:5:Non-existent attached object diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.9.qml new file mode 100644 index 0000000..a095229 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.9.qml @@ -0,0 +1,7 @@ +import Test 1.0 +import Qt 4.6 + +QtObject { + MadeUpClass.foo: 10 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.errors.txt new file mode 100644 index 0000000..810fd31 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.errors.txt @@ -0,0 +1 @@ +5:5:Invalid grouped property access diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml new file mode 100644 index 0000000..1167e39 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +QtObject { + property var o; + o.blah: 10 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.2.errors.txt new file mode 100644 index 0000000..810fd31 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.2.errors.txt @@ -0,0 +1 @@ +5:5:Invalid grouped property access diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.2.qml new file mode 100644 index 0000000..a0c8306 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.2.qml @@ -0,0 +1,7 @@ +import Qt 4.6 + +QtObject { + property int o; + o.blah: 10 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.3.errors.txt new file mode 100644 index 0000000..f6d6f29 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.3.errors.txt @@ -0,0 +1 @@ +4:5:Invalid grouped property access diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.3.qml new file mode 100644 index 0000000..0bbfc4f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.3.qml @@ -0,0 +1,5 @@ +import Test 1.0 + +MyQmlObject { + customType.x: 10 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.4.errors.txt new file mode 100644 index 0000000..69c6871 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.4.errors.txt @@ -0,0 +1 @@ +4:5:Cannot assign to non-existent property "foo" diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.4.qml new file mode 100644 index 0000000..134fef9 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.4.qml @@ -0,0 +1,5 @@ +import Test 1.0 + +MyQmlObject { + foo.x: 10 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.5.errors.txt new file mode 100644 index 0000000..2c8a970 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.5.errors.txt @@ -0,0 +1 @@ +4:18:Property assignment expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.5.qml new file mode 100644 index 0000000..55cefe6 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.5.qml @@ -0,0 +1,5 @@ +import Test 1.0 + +MyTypeObject { + rectProperty.x.foo: 100 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.errors.txt new file mode 100644 index 0000000..8331725 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.errors.txt @@ -0,0 +1 @@ +5:18:Single property assignment expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.qml new file mode 100644 index 0000000..9ec33ab --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.qml @@ -0,0 +1,6 @@ +import Test 1.0 + +MyTypeObject { + rectProperty.x: 100 + rectProperty.x: 101 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.7.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.7.errors.txt new file mode 100644 index 0000000..4a7e383 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.7.errors.txt @@ -0,0 +1 @@ +4:-1:Cannot set properties on nullGrouped as it is null diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.7.qml new file mode 100644 index 0000000..977539a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.7.qml @@ -0,0 +1,5 @@ +import Test 1.0 + +MyTypeObject { + nullGrouped.script: console.log(1921) +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.errors.txt new file mode 100644 index 0000000..56e3eeb --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.errors.txt @@ -0,0 +1,2 @@ +3:5:"" is not a valid object id + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.qml new file mode 100644 index 0000000..4fb3b29 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyQmlObject { + id: "" +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.3.errors.txt new file mode 100644 index 0000000..bb811cf --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.3.errors.txt @@ -0,0 +1 @@ +3:5:Invalid use of id property diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.3.qml new file mode 100644 index 0000000..6684172 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.3.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyQmlObject { + id.other: 10 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.errors.txt new file mode 100644 index 0000000..cfe8756 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.errors.txt @@ -0,0 +1 @@ +4:5:Invalid use of id property diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.qml new file mode 100644 index 0000000..86010bf --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.qml @@ -0,0 +1,6 @@ +import Test 1.0 +MyQmlObject { + id: hello + id: world +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.5.errors.txt new file mode 100644 index 0000000..c167de3 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.5.errors.txt @@ -0,0 +1 @@ +2:20:Invalid import qualifier ID diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.5.qml new file mode 100644 index 0000000..5b92a1a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.5.qml @@ -0,0 +1,6 @@ +import Test 1.0 +import Test 1.0 as hello +MyQmlObject { + id: hello +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.errors.txt new file mode 100644 index 0000000..160e8b5 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.errors.txt @@ -0,0 +1 @@ +3:5:"StartsWithUpperCase" is not a valid object id diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.qml new file mode 100644 index 0000000..62187d9 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyQmlObject { + id: StartsWithUpperCase +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.errors.txt new file mode 100644 index 0000000..1ca678c --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.errors.txt @@ -0,0 +1 @@ +3:5:"1" is not a valid object id diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.qml new file mode 100644 index 0000000..04db3eb --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + id: 1 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.errors.txt new file mode 100644 index 0000000..a65f5fd --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.errors.txt @@ -0,0 +1 @@ +2:18:Invalid import qualifier ID diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.qml new file mode 100644 index 0000000..30d88d5 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.qml @@ -0,0 +1,4 @@ +import Qt 4.6 +import Qt 4.6 as qt + +QtObject {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidRoot.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidRoot.errors.txt new file mode 100644 index 0000000..4bcc948 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidRoot.errors.txt @@ -0,0 +1 @@ +1:1:Expected type name diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidRoot.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidRoot.qml new file mode 100644 index 0000000..427827c --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidRoot.qml @@ -0,0 +1,2 @@ +foo { +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml new file mode 100644 index 0000000..d8a22a8 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml @@ -0,0 +1,2 @@ +import Qt 4.6 +Rectangle {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest2.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest2.qml new file mode 100644 index 0000000..a0706ad --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest2.qml @@ -0,0 +1,2 @@ +import Qt 4.6 +Text {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/PrivateType.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/PrivateType.qml new file mode 100644 index 0000000..93c7630 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/PrivateType.qml @@ -0,0 +1,2 @@ +import Qt 4.6 +Image {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir new file mode 100644 index 0000000..eeb9a05 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir @@ -0,0 +1,4 @@ +Rectangle 1.5 InstalledTest2.qml +InstalledTest 1.4 InstalledTest2.qml +InstalledTest 1.0 InstalledTest.qml +InstalledTestTP 0.0 InstalledTest.qml diff --git a/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.2.errors.txt new file mode 100644 index 0000000..8b40aa3 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.2.errors.txt @@ -0,0 +1,2 @@ +3:15:Cannot assign primitives to lists + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.2.qml new file mode 100644 index 0000000..e3baadb --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.2.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyContainer { + children: 2 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.errors.txt new file mode 100644 index 0000000..8c7b7e9 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.errors.txt @@ -0,0 +1 @@ +4:15:Can only assign one binding to lists diff --git a/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.qml new file mode 100644 index 0000000..00c4c6b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.qml @@ -0,0 +1,6 @@ +import Test 1.0 +MyContainer { + children: childBinding.expression + children: childBinding2.expression +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/listItemDeleteSelf.qml b/tests/auto/declarative/qdeclarativelanguage/data/listItemDeleteSelf.qml new file mode 100644 index 0000000..32b5b6c --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/listItemDeleteSelf.qml @@ -0,0 +1,38 @@ +import Qt 4.6 + +Item { + ListModel { + id: fruitModel + ListElement { + name: "Apple" + cost: 2.45 + } + ListElement { + name: "Orange" + cost: 3.25 + } + ListElement { + name: "Banana" + cost: 1.95 + } + } + + Component { + id: fruitDelegate + Item { + width: 200; height: 50 + Text { text: name } + Text { text: '$'+cost; anchors.right: parent.right } + MouseArea { + anchors.fill: parent + onClicked: fruitModel.remove(index) + } + } + } + + ListView { + model: fruitModel + delegate: fruitDelegate + anchors.fill: parent + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/listProperties.qml b/tests/auto/declarative/qdeclarativelanguage/data/listProperties.qml new file mode 100644 index 0000000..ba9e37c --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/listProperties.qml @@ -0,0 +1,9 @@ +import Qt 4.6 + +QtObject { + property list<QtObject> listProperty + property int test: listProperty.length + + listProperty: [ QtObject{}, QtObject {} ] +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/missingObject.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/missingObject.errors.txt new file mode 100644 index 0000000..b31b562 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/missingObject.errors.txt @@ -0,0 +1 @@ +1:10:Expected token `{' diff --git a/tests/auto/declarative/qdeclarativelanguage/data/missingObject.qml b/tests/auto/declarative/qdeclarativelanguage/data/missingObject.qml new file mode 100644 index 0000000..2f17045 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/missingObject.qml @@ -0,0 +1 @@ +something: 24 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/missingSignal.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/missingSignal.errors.txt new file mode 100644 index 0000000..f562246 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/missingSignal.errors.txt @@ -0,0 +1 @@ +4:5:Cannot assign to non-existent property "onClicked" diff --git a/tests/auto/declarative/qdeclarativelanguage/data/missingSignal.qml b/tests/auto/declarative/qdeclarativelanguage/data/missingSignal.qml new file mode 100644 index 0000000..3bf75f6 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/missingSignal.qml @@ -0,0 +1,5 @@ +import Test 1.0 +import Qt 4.6 +QtObject { + onClicked: console.log("Hello world!") +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/missingValueTypeProperty.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/missingValueTypeProperty.errors.txt new file mode 100644 index 0000000..caf7e55 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/missingValueTypeProperty.errors.txt @@ -0,0 +1 @@ +4:18:Cannot assign to non-existent property "foo" diff --git a/tests/auto/declarative/qdeclarativelanguage/data/missingValueTypeProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/missingValueTypeProperty.qml new file mode 100644 index 0000000..9a0fa6a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/missingValueTypeProperty.qml @@ -0,0 +1,5 @@ +import Test 1.0 + +MyTypeObject { + rectProperty.foo: 9 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt new file mode 100644 index 0000000..886da55 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt @@ -0,0 +1,2 @@ +4:5:Unable to create type NestedErrorsType +4:8:Invalid property assignment: double expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.qml b/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.qml new file mode 100644 index 0000000..c0d755a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +Item { + NestedErrorsType {} +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.1.errors.txt new file mode 100644 index 0000000..6bfce9a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.1.errors.txt @@ -0,0 +1 @@ +2:15:Cannot assign to non-existent property "something" diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.1.qml new file mode 100644 index 0000000..df7406c --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.1.qml @@ -0,0 +1,2 @@ +import Test 1.0 +MyQmlObject { something: 24 } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.2.errors.txt new file mode 100644 index 0000000..4b30056 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.2.errors.txt @@ -0,0 +1 @@ +3:5:Cannot assign to non-existent property "something" diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.2.qml new file mode 100644 index 0000000..06ccd37 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.2.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + something: 24 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.3.errors.txt new file mode 100644 index 0000000..4b30056 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.3.errors.txt @@ -0,0 +1 @@ +3:5:Cannot assign to non-existent property "something" diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.3.qml new file mode 100644 index 0000000..5b08608 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.3.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + something: 1 + 1 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.4.errors.txt new file mode 100644 index 0000000..4b30056 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.4.errors.txt @@ -0,0 +1 @@ +3:5:Cannot assign to non-existent property "something" diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.4.qml new file mode 100644 index 0000000..6579191 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.4.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + something: ; +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.5.errors.txt new file mode 100644 index 0000000..c07f2b9 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.5.errors.txt @@ -0,0 +1 @@ +3:5:Expected a qualified name id diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.5.qml new file mode 100644 index 0000000..37af057 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.5.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + 24 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.6.errors.txt new file mode 100644 index 0000000..89925b7 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.6.errors.txt @@ -0,0 +1 @@ +3:5:Cannot assign to non-existent default property diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.6.qml new file mode 100644 index 0000000..5cd55d0 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.6.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + MyQmlObject {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nullDotProperty.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/nullDotProperty.errors.txt new file mode 100644 index 0000000..07a4094 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nullDotProperty.errors.txt @@ -0,0 +1 @@ +3:-1:Cannot set properties on obj as it is null diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nullDotProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/nullDotProperty.qml new file mode 100644 index 0000000..4e36779 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/nullDotProperty.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyDotPropertyObject { + obj.value: 1 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/objectValueTypeProperty.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/objectValueTypeProperty.errors.txt new file mode 100644 index 0000000..db7d9c0 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/objectValueTypeProperty.errors.txt @@ -0,0 +1 @@ +4:18:Unexpected object assignment diff --git a/tests/auto/declarative/qdeclarativelanguage/data/objectValueTypeProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/objectValueTypeProperty.qml new file mode 100644 index 0000000..9924773 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/objectValueTypeProperty.qml @@ -0,0 +1,6 @@ +import Test 1.0 + +MyTypeObject { + rectProperty.x: MyTypeObject {} +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/onCompleted.qml b/tests/auto/declarative/qdeclarativelanguage/data/onCompleted.qml new file mode 100644 index 0000000..5725f85 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/onCompleted.qml @@ -0,0 +1,17 @@ +import Test 1.0 +import Qt 4.6 + +MyTypeObject { + // We set a and b to ensure that onCompleted is executed after bindings and + // constants have been assigned + property int a: Math.min(6, 7) + Component.onCompleted: console.log("Completed " + a + " " + nestedObject.b) + + objectProperty: OnCompletedType { + qmlobjectProperty: MyQmlObject { + id: nestedObject + property int b: 10 + Component.onCompleted: console.log("Completed " + a + " " + nestedObject.b) + } + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/property.1.errors.txt new file mode 100644 index 0000000..3ae6c46 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.1.errors.txt @@ -0,0 +1 @@ +4:14:Expected property type diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.1.qml new file mode 100644 index 0000000..cadc39a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.1.qml @@ -0,0 +1,5 @@ +import Qt 4.6 + +QtObject { + property blah a; +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/property.2.errors.txt new file mode 100644 index 0000000..a18e21a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.2.errors.txt @@ -0,0 +1 @@ +4:14:Unexpected property type modifier diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.2.qml new file mode 100644 index 0000000..e810c6c --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.2.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +QtObject { + property invalidmodifier<int> a; +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/property.3.errors.txt new file mode 100644 index 0000000..5e09a25 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.3.errors.txt @@ -0,0 +1 @@ +4:14:Invalid property type modifier diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.3.qml new file mode 100644 index 0000000..04147c2 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.3.qml @@ -0,0 +1,7 @@ +import Qt 4.6 + +QtObject { + property invalidmodifier<QtObject> a; +} + + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/property.4.errors.txt new file mode 100644 index 0000000..b447186 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.4.errors.txt @@ -0,0 +1 @@ +5:1:Syntax error diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.4.qml new file mode 100644 index 0000000..b2ec482 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.4.qml @@ -0,0 +1,5 @@ +import Qt 4.6 + +QtObject { + readonly property int a +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/property.5.errors.txt new file mode 100644 index 0000000..32a8dc1 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.5.errors.txt @@ -0,0 +1 @@ +4:5:Readonly not yet supported diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.5.qml new file mode 100644 index 0000000..65fafbb --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.5.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +QtObject { + readonly property int a: value +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.2.qml new file mode 100644 index 0000000..57a6070 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.2.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + intProperty : MyCompositeValueSource {} +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.qml b/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.qml new file mode 100644 index 0000000..ad71fcf --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyTypeObject { + intProperty : MyPropertyValueSource {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.1.qml new file mode 100644 index 0000000..429c327 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.1.qml @@ -0,0 +1,5 @@ +import Test 1.0 +import Qt 4.6 +QtObject { +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.2.qml new file mode 100644 index 0000000..0f57b61 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.2.qml @@ -0,0 +1,6 @@ +import Test 1.0 +import Qt 4.6 +QtObject { + MyQmlObject.value: 10 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.1.errors.txt new file mode 100644 index 0000000..b8c3404 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.1.errors.txt @@ -0,0 +1 @@ +3:21:Invalid property assignment: "readOnlyString" is a read-only property diff --git a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.1.qml new file mode 100644 index 0000000..60757bd --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.1.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + readOnlyString: "Hello World" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.2.errors.txt new file mode 100644 index 0000000..d857a04 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.2.errors.txt @@ -0,0 +1 @@ +3:5:Invalid property assignment: "readOnlyString" is a read-only property diff --git a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.2.qml new file mode 100644 index 0000000..8f1633c --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.2.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + readOnlyString: "Hello" + "World" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.errors.txt new file mode 100644 index 0000000..c7e9e1b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.errors.txt @@ -0,0 +1 @@ +6:36:Invalid property assignment: "objAlias" is a read-only property diff --git a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml new file mode 100644 index 0000000..cd86a48 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml @@ -0,0 +1,8 @@ +import Test 1.0 +import Qt 4.6 + +QtObject { + property var child + child: HelperAlias { objAlias: QtObject {} } +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/rootAsQmlComponent.qml b/tests/auto/declarative/qdeclarativelanguage/data/rootAsQmlComponent.qml new file mode 100644 index 0000000..8d72cd3 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/rootAsQmlComponent.qml @@ -0,0 +1,6 @@ +import Test 1.0 +MyContainerComponent { + x: 11 + MyQmlObject {} + MyQmlObject {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.1.errors.txt new file mode 100644 index 0000000..50518cc --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.1.errors.txt @@ -0,0 +1 @@ +3:1:Invalid use of Script block diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.1.qml new file mode 100644 index 0000000..8dac8b7 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.1.qml @@ -0,0 +1,4 @@ +import Qt 4.6 + +Script { +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.10.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.10.errors.txt new file mode 100644 index 0000000..13f47d1 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.10.errors.txt @@ -0,0 +1 @@ +6:9:Component elements may not contain script blocks diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.10.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.10.qml new file mode 100644 index 0000000..516e878 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.10.qml @@ -0,0 +1,9 @@ +import Qt 4.6 + +Item { + Component { + Item {} + Script {} + } +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.11.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.11.errors.txt new file mode 100644 index 0000000..a664203 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.11.errors.txt @@ -0,0 +1 @@ +5:9:Invalid Script block diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.11.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.11.qml new file mode 100644 index 0000000..6d2d598 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.11.qml @@ -0,0 +1,7 @@ +import Qt 4.6 + +QtObject { + Script { + QtObject {} + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.12.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.12.errors.txt new file mode 100644 index 0000000..f8297f5 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.12.errors.txt @@ -0,0 +1 @@ +4:5:JavaScript declaration outside Script element diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.12.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.12.qml new file mode 100644 index 0000000..9ecb5d9 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.12.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +QtObject { + var a +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.2.errors.txt new file mode 100644 index 0000000..8fb3bbd --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.2.errors.txt @@ -0,0 +1 @@ +5:9:Properties cannot be set on Script block diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.2.qml new file mode 100644 index 0000000..dce1a41 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.2.qml @@ -0,0 +1,7 @@ +import Qt 4.6 + +QtObject { + Script { + id: myScript + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.3.errors.txt new file mode 100644 index 0000000..8fb3bbd --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.3.errors.txt @@ -0,0 +1 @@ +5:9:Properties cannot be set on Script block diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.3.qml new file mode 100644 index 0000000..8621a9a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.3.qml @@ -0,0 +1,7 @@ +import Qt 4.6 + +QtObject { + Script { + hello: world + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.4.errors.txt new file mode 100644 index 0000000..49a507f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.4.errors.txt @@ -0,0 +1 @@ +5:9:Invalid Script source value diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.4.qml new file mode 100644 index 0000000..d89817c --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.4.qml @@ -0,0 +1,8 @@ +import Qt 4.6 + +QtObject { + Script { + source: 10 + } +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.5.errors.txt new file mode 100644 index 0000000..49a507f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.5.errors.txt @@ -0,0 +1 @@ +5:9:Invalid Script source value diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.5.qml new file mode 100644 index 0000000..8986b3b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.5.qml @@ -0,0 +1,9 @@ +import Qt 4.6 + +QtObject { + Script { + source: "hello" + ".js" + } +} + + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.6.errors.txt new file mode 100644 index 0000000..4e53b6b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.6.errors.txt @@ -0,0 +1 @@ +5:9:Invalid Script block. Specify either the source property or inline script diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.6.qml new file mode 100644 index 0000000..07e9d78 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.6.qml @@ -0,0 +1,11 @@ +import Qt 4.6 + +QtObject { + Script { + source: "test.js" + function helloWorld() {} + } +} + + + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.7.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.7.errors.txt new file mode 100644 index 0000000..dc15ddf --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.7.errors.txt @@ -0,0 +1 @@ +5:9:Variable declarations not allow in inline Script blocks diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.7.qml new file mode 100644 index 0000000..fa905e6 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.7.qml @@ -0,0 +1,11 @@ +import Qt 4.6 + +QtObject { + Script { + var a = 10; + } +} + + + + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.8.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.8.errors.txt new file mode 100644 index 0000000..b5bf1a8 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.8.errors.txt @@ -0,0 +1 @@ +6:9:Invalid Script source value diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.8.qml new file mode 100644 index 0000000..f600c88 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.8.qml @@ -0,0 +1,9 @@ +import Qt 4.6 + +QtObject { + Script { + source: "test.js" + source: "test2.js" + } +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.9.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.9.errors.txt new file mode 100644 index 0000000..41e8d46 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.9.errors.txt @@ -0,0 +1 @@ +5:9:Component elements may not contain script blocks diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.9.qml new file mode 100644 index 0000000..79aa504 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/script.9.qml @@ -0,0 +1,7 @@ +import Qt 4.6 + +Item { + Component { + Script {} + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/scriptString.qml b/tests/auto/declarative/qdeclarativelanguage/data/scriptString.qml new file mode 100644 index 0000000..40a3bbe --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/scriptString.qml @@ -0,0 +1,6 @@ +import Test 1.0 + +MyTypeObject { + scriptProperty: foo + bar + grouped.script: console.log(1921) +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/signal.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/signal.1.errors.txt new file mode 100644 index 0000000..78d9960 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/signal.1.errors.txt @@ -0,0 +1 @@ +4:12:Expected parameter type diff --git a/tests/auto/declarative/qdeclarativelanguage/data/signal.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/signal.1.qml new file mode 100644 index 0000000..fbaf017 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/signal.1.qml @@ -0,0 +1,5 @@ +import Qt 4.6 + +QtObject { + signal mySignal(nontype a) +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/signal.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/signal.2.errors.txt new file mode 100644 index 0000000..fce8928 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/signal.2.errors.txt @@ -0,0 +1 @@ +4:21:Unexpected token `;' diff --git a/tests/auto/declarative/qdeclarativelanguage/data/signal.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/signal.2.qml new file mode 100644 index 0000000..5049192 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/signal.2.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +QtObject { + signal mySignal(,) +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/signal.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/signal.3.errors.txt new file mode 100644 index 0000000..bf043ac --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/signal.3.errors.txt @@ -0,0 +1 @@ +4:22:Expected token `identifier' diff --git a/tests/auto/declarative/qdeclarativelanguage/data/signal.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/signal.3.qml new file mode 100644 index 0000000..9dd4cc7 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/signal.3.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +QtObject { + signal mySignal(a) +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/simpleBindings.qml b/tests/auto/declarative/qdeclarativelanguage/data/simpleBindings.qml new file mode 100644 index 0000000..2fcd1a5 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/simpleBindings.qml @@ -0,0 +1,18 @@ +import Test 1.0 +MyTypeObject { + id: me + property int v1: 10 + property int v2: 11 + + property int value1 + property int value2 + property int value3 + property int value4 + + value1: v1 + value2: me.v1 + value3: v1 + v2 + value4: Math.min(v1, v2) + + objectProperty: me +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/simpleContainer.qml b/tests/auto/declarative/qdeclarativelanguage/data/simpleContainer.qml new file mode 100644 index 0000000..c3a795f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/simpleContainer.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyContainer { + MyQmlObject {} + MyQmlObject {} +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/simpleObject.qml b/tests/auto/declarative/qdeclarativelanguage/data/simpleObject.qml new file mode 100644 index 0000000..30c7823 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/simpleObject.qml @@ -0,0 +1,2 @@ +import Test 1.0 +MyQmlObject {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/subdir/Test.qml b/tests/auto/declarative/qdeclarativelanguage/data/subdir/Test.qml new file mode 100644 index 0000000..c4d5905 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/subdir/Test.qml @@ -0,0 +1,2 @@ +import Qt 4.6 +Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/subdir/subsubdir/SubTest.qml b/tests/auto/declarative/qdeclarativelanguage/data/subdir/subsubdir/SubTest.qml new file mode 100644 index 0000000..c4d5905 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/subdir/subsubdir/SubTest.qml @@ -0,0 +1,2 @@ +import Qt 4.6 +Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/test.js b/tests/auto/declarative/qdeclarativelanguage/data/test.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/test.js diff --git a/tests/auto/declarative/qdeclarativelanguage/data/test2.js b/tests/auto/declarative/qdeclarativelanguage/data/test2.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/test2.js diff --git a/tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.errors.txt new file mode 100644 index 0000000..347db05 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.errors.txt @@ -0,0 +1 @@ +2:1:Type UnregisteredObjectType unavailable diff --git a/tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.qml b/tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.qml new file mode 100644 index 0000000..4969f62 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.qml @@ -0,0 +1,2 @@ +import Test 1.0 +UnregisteredObjectType {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/unsupportedProperty.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/unsupportedProperty.errors.txt new file mode 100644 index 0000000..3cd626d --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/unsupportedProperty.errors.txt @@ -0,0 +1 @@ +3:13:Invalid property assignment: unsupported type "QMatrix" diff --git a/tests/auto/declarative/qdeclarativelanguage/data/unsupportedProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/unsupportedProperty.qml new file mode 100644 index 0000000..9f19680 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/unsupportedProperty.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + matrix: "1,0,0,0,1,0,0,0,1" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/valueTypes.qml b/tests/auto/declarative/qdeclarativelanguage/data/valueTypes.qml new file mode 100644 index 0000000..bf325a7 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/valueTypes.qml @@ -0,0 +1,13 @@ +import Test 1.0 +MyTypeObject { + rectProperty.x: 10 + rectProperty.y: 11 + rectProperty.width: rectProperty.x + 2 + rectProperty.height: 13 + + intProperty: rectProperty.x + + onAction: { var a = rectProperty; a.x = 12; } + + rectProperty2: rectProperty +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.1.errors.txt new file mode 100644 index 0000000..ba7a076 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.1.errors.txt @@ -0,0 +1 @@ +3:12:Invalid property assignment: int expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.1.qml new file mode 100644 index 0000000..289d37f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.1.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + value: "hello" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.10.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.10.errors.txt new file mode 100644 index 0000000..ae75b52 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.10.errors.txt @@ -0,0 +1 @@ +3:23:Invalid property assignment: datetime expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.10.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.10.qml new file mode 100644 index 0000000..2cf0e50 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.10.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + dateTimeProperty: 12 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.11.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.11.errors.txt new file mode 100644 index 0000000..23a4cda --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.11.errors.txt @@ -0,0 +1 @@ +3:20:Invalid property assignment: point expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.11.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.11.qml new file mode 100644 index 0000000..ae77ba1 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.11.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + pointProperty: "apples" +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.12.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.12.errors.txt new file mode 100644 index 0000000..3092100 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.12.errors.txt @@ -0,0 +1 @@ +3:19:Invalid property assignment: size expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.12.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.12.qml new file mode 100644 index 0000000..b7a366f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.12.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + sizeProperty: "red" +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.13.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.13.errors.txt new file mode 100644 index 0000000..ba7a076 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.13.errors.txt @@ -0,0 +1 @@ +3:12:Invalid property assignment: int expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.13.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.13.qml new file mode 100644 index 0000000..477aff1 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.13.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + value: "12" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.14.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.14.errors.txt new file mode 100644 index 0000000..d621fdd --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.14.errors.txt @@ -0,0 +1 @@ +3:21:Invalid property assignment: string expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.14.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.14.qml new file mode 100644 index 0000000..672d693 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.14.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + stringProperty: 10 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.15.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.15.errors.txt new file mode 100644 index 0000000..44768e3 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.15.errors.txt @@ -0,0 +1 @@ +3:18:Invalid property assignment: url expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.15.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.15.qml new file mode 100644 index 0000000..633a5ba --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.15.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyTypeObject { + urlProperty: 12 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.2.errors.txt new file mode 100644 index 0000000..9ff9f25 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.2.errors.txt @@ -0,0 +1 @@ +3:14:Invalid property assignment: boolean expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.2.qml new file mode 100644 index 0000000..34b74f7 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.2.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + enabled: 5 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.3.errors.txt new file mode 100644 index 0000000..6d971c6 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.3.errors.txt @@ -0,0 +1 @@ +3:11:Invalid property assignment: rect expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.3.qml new file mode 100644 index 0000000..384181a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.3.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyQmlObject { + rect: "5,5x10" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.4.errors.txt new file mode 100644 index 0000000..ef34d0e --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.4.errors.txt @@ -0,0 +1 @@ +3:19:Invalid property assignment: unknown enumeration diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.4.qml new file mode 100644 index 0000000..0787bf5 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.4.qml @@ -0,0 +1,4 @@ +import Test 1.0 +MyTypeObject { + enumProperty: "InvalidEnumName" +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.5.errors.txt new file mode 100644 index 0000000..cab10bd --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.5.errors.txt @@ -0,0 +1 @@ +3:19:Invalid property assignment: unsigned int expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.5.qml new file mode 100644 index 0000000..c50ae9a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.5.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + uintProperty: -13 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.errors.txt new file mode 100644 index 0000000..d0a0b00 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.errors.txt @@ -0,0 +1 @@ +3:19:Invalid property assignment: double expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.qml new file mode 100644 index 0000000..da10b78 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + realProperty: "Hello" +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.7.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.7.errors.txt new file mode 100644 index 0000000..614346b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.7.errors.txt @@ -0,0 +1 @@ +3:20:Invalid property assignment: color expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.7.qml new file mode 100644 index 0000000..ddc3835 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.7.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + colorProperty: 12 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.8.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.8.errors.txt new file mode 100644 index 0000000..1773c00 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.8.errors.txt @@ -0,0 +1 @@ +3:19:Invalid property assignment: date expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.8.qml new file mode 100644 index 0000000..a5f6756 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.8.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + dateProperty: 12 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.9.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.9.errors.txt new file mode 100644 index 0000000..8630975 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.9.errors.txt @@ -0,0 +1 @@ +3:19:Invalid property assignment: time expected diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.9.qml new file mode 100644 index 0000000..a3db732 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.9.qml @@ -0,0 +1,5 @@ +import Test 1.0 +MyTypeObject { + timeProperty: 12 +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro b/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro new file mode 100644 index 0000000..d7c1def --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro @@ -0,0 +1,14 @@ +load(qttest_p4) +contains(QT_CONFIG,declarative): QT += declarative +QT += script network +macx:CONFIG -= app_bundle + +SOURCES += tst_qdeclarativelanguage.cpp \ + testtypes.cpp +HEADERS += testtypes.h + +INCLUDEPATH += ../shared/ +HEADERS += ../shared/testhttpserver.h +SOURCES += ../shared/testhttpserver.cpp + +DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/LocalInternal.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/LocalInternal.qml new file mode 100644 index 0000000..836c20a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/LocalInternal.qml @@ -0,0 +1,3 @@ +import Qt 4.6 + +Image { source: "pics/blue.png" } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/Test.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/Test.qml new file mode 100644 index 0000000..c4d5905 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/Test.qml @@ -0,0 +1,2 @@ +import Qt 4.6 +Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestLocal.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestLocal.qml new file mode 100644 index 0000000..11443ca --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestLocal.qml @@ -0,0 +1 @@ +LocalInternal {} diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestSubDir.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestSubDir.qml new file mode 100644 index 0000000..0dfede4 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestSubDir.qml @@ -0,0 +1,2 @@ +import "subdir" +SubTest { } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/pics/blue.png b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/pics/blue.png Binary files differnew file mode 100644 index 0000000..46f815f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/pics/blue.png diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir new file mode 100644 index 0000000..b32f82b --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir @@ -0,0 +1,3 @@ +Test 0.0 Test.qml +TestSubDir 0.0 TestSubDir.qml +TestLocal 0.0 TestLocal.qml diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml new file mode 100644 index 0000000..0ea9ec6 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml @@ -0,0 +1,3 @@ +import Qt 4.6 + +Text {} diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir new file mode 100644 index 0000000..f7016c7 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir @@ -0,0 +1 @@ +SubTest 0.0 SubTest.qml diff --git a/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp b/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp new file mode 100644 index 0000000..9ffe28a --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include "testtypes.h" + +void registerTypes() +{ + QML_REGISTER_INTERFACE(MyInterface); + QML_REGISTER_TYPE(Test,1,0,MyQmlObject,MyQmlObject); + QML_REGISTER_TYPE(Test,1,0,MyTypeObject,MyTypeObject); + QML_REGISTER_TYPE(Test,1,0,MyContainer,MyContainer); + QML_REGISTER_TYPE(Test,1,0,MyPropertyValueSource,MyPropertyValueSource); + QML_REGISTER_TYPE(Test,1,0,MyDotPropertyObject,MyDotPropertyObject); + QML_REGISTER_TYPE(Test,1,0,MyNamespacedType,MyNamespace::MyNamespacedType); + QML_REGISTER_TYPE(Test,1,0,MySecondNamespacedType,MyNamespace::MySecondNamespacedType); + QML_REGISTER_NOCREATE_TYPE(MyGroupedObject); +} + +QVariant myCustomVariantTypeConverter(const QString &data) +{ + MyCustomVariantType rv; + rv.a = data.toInt(); + return QVariant::fromValue(rv); +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/testtypes.h b/tests/auto/declarative/qdeclarativelanguage/testtypes.h new file mode 100644 index 0000000..8ac7aa6 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.h @@ -0,0 +1,554 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef TESTTYPES_H +#define TESTTYPES_H + +#include <QtCore/qobject.h> +#include <QtCore/qrect.h> +#include <QtCore/qdatetime.h> +#include <QtGui/qmatrix.h> +#include <QtGui/qcolor.h> +#include <QtGui/qvector3d.h> +#include <QtDeclarative/qdeclarative.h> +#include <QtDeclarative/qdeclarativecomponent.h> +#include <QtDeclarative/qdeclarativeparserstatus.h> +#include <QtDeclarative/qdeclarativepropertyvaluesource.h> +#include <QtDeclarative/qdeclarativescriptstring.h> +#include <QtDeclarative/qdeclarativeproperty.h> + +QVariant myCustomVariantTypeConverter(const QString &data); + +class MyInterface +{ +public: + MyInterface() : id(913) {} + int id; +}; +Q_DECLARE_INTERFACE(MyInterface, "com.trolltech.Qt.Test.MyInterface"); +QML_DECLARE_INTERFACE(MyInterface); + +struct MyCustomVariantType +{ + MyCustomVariantType() : a(0) {} + int a; +}; +Q_DECLARE_METATYPE(MyCustomVariantType); + +class MyAttachedObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(int value READ value WRITE setValue) + Q_PROPERTY(int value2 READ value2 WRITE setValue2) +public: + MyAttachedObject(QObject *parent) : QObject(parent), m_value(0), m_value2(0) {} + + int value() const { return m_value; } + void setValue(int v) { m_value = v; } + + int value2() const { return m_value2; } + void setValue2(int v) { m_value2 = v; } + +private: + int m_value; + int m_value2; +}; + +class MyQmlObject : public QObject, public MyInterface, public QDeclarativeParserStatus +{ + Q_OBJECT + Q_PROPERTY(int value READ value WRITE setValue FINAL) + Q_PROPERTY(QString readOnlyString READ readOnlyString) + Q_PROPERTY(bool enabled READ enabled WRITE setEnabled) + Q_PROPERTY(QRect rect READ rect WRITE setRect) + Q_PROPERTY(QMatrix matrix READ matrix WRITE setMatrix) //assumed to be unsupported by QML + Q_PROPERTY(MyInterface *interfaceProperty READ interface WRITE setInterface) + Q_PROPERTY(int onLiteralSignal READ onLiteralSignal WRITE setOnLiteralSignal); + Q_PROPERTY(MyCustomVariantType customType READ customType WRITE setCustomType); + Q_PROPERTY(MyQmlObject *qmlobjectProperty READ qmlobject WRITE setQmlobject) + Q_PROPERTY(int propertyWithNotify READ propertyWithNotify WRITE setPropertyWithNotify NOTIFY oddlyNamedNotifySignal) + + Q_INTERFACES(MyInterface QDeclarativeParserStatus) +public: + MyQmlObject() : m_value(-1), m_interface(0), m_qmlobject(0) { qRegisterMetaType<MyCustomVariantType>("MyCustomVariantType"); } + + int value() const { return m_value; } + void setValue(int v) { m_value = v; } + + QString readOnlyString() const { return QLatin1String(""); } + + bool enabled() const { return false; } + void setEnabled(bool) {} + + QRect rect() const { return QRect(); } + void setRect(const QRect&) {} + + QMatrix matrix() const { return QMatrix(); } + void setMatrix(const QMatrix&) {} + + MyInterface *interface() const { return m_interface; } + void setInterface(MyInterface *iface) { m_interface = iface; } + + static MyAttachedObject *qmlAttachedProperties(QObject *other) { + return new MyAttachedObject(other); + } + Q_CLASSINFO("DefaultMethod", "basicSlot()"); + + int onLiteralSignal() const { return m_value; } + void setOnLiteralSignal(int v) { m_value = v; } + + MyQmlObject *qmlobject() const { return m_qmlobject; } + void setQmlobject(MyQmlObject *o) { m_qmlobject = o; } + + MyCustomVariantType customType() const { return m_custom; } + void setCustomType(const MyCustomVariantType &v) { m_custom = v; } + + int propertyWithNotify() const { return m_propertyWithNotify; } + void setPropertyWithNotify(int i) { m_propertyWithNotify = i; emit oddlyNamedNotifySignal(); } +public slots: + void basicSlot() { qWarning("MyQmlObject::basicSlot"); } + void basicSlotWithArgs(int v) { qWarning("MyQmlObject::basicSlotWithArgs(%d)", v); } + +signals: + void basicSignal(); + void basicParameterizedSignal(int parameter); + void oddlyNamedNotifySignal(); + +private: + friend class tst_qdeclarativelanguage; + int m_value; + MyInterface *m_interface; + MyQmlObject *m_qmlobject; + MyCustomVariantType m_custom; + int m_propertyWithNotify; +}; +QML_DECLARE_TYPEINFO(MyQmlObject, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(MyQmlObject); + +class MyGroupedObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(QDeclarativeScriptString script READ script WRITE setScript); +public: + QDeclarativeScriptString script() const { return m_script; } + void setScript(const QDeclarativeScriptString &s) { m_script = s; } + +private: + QDeclarativeScriptString m_script; +}; + +QML_DECLARE_TYPE(MyGroupedObject); + + +class MyTypeObject : public QObject +{ + Q_OBJECT + Q_ENUMS(MyEnum) + Q_FLAGS(MyFlags) + + Q_PROPERTY(QString id READ id WRITE setId); + Q_PROPERTY(QObject *objectProperty READ objectProperty WRITE setObjectProperty); + Q_PROPERTY(QDeclarativeComponent *componentProperty READ componentProperty WRITE setComponentProperty); + Q_PROPERTY(MyFlags flagProperty READ flagProperty WRITE setFlagProperty); + Q_PROPERTY(MyEnum enumProperty READ enumProperty WRITE setEnumProperty); + Q_PROPERTY(QString stringProperty READ stringProperty WRITE setStringProperty); + Q_PROPERTY(uint uintProperty READ uintProperty WRITE setUintProperty); + Q_PROPERTY(int intProperty READ intProperty WRITE setIntProperty); + Q_PROPERTY(qreal realProperty READ realProperty WRITE setRealProperty); + Q_PROPERTY(double doubleProperty READ doubleProperty WRITE setDoubleProperty); + Q_PROPERTY(float floatProperty READ floatProperty WRITE setFloatProperty); + Q_PROPERTY(QColor colorProperty READ colorProperty WRITE setColorProperty); + Q_PROPERTY(QDate dateProperty READ dateProperty WRITE setDateProperty); + Q_PROPERTY(QTime timeProperty READ timeProperty WRITE setTimeProperty); + Q_PROPERTY(QDateTime dateTimeProperty READ dateTimeProperty WRITE setDateTimeProperty); + Q_PROPERTY(QPoint pointProperty READ pointProperty WRITE setPointProperty); + Q_PROPERTY(QPointF pointFProperty READ pointFProperty WRITE setPointFProperty); + Q_PROPERTY(QSize sizeProperty READ sizeProperty WRITE setSizeProperty); + Q_PROPERTY(QSizeF sizeFProperty READ sizeFProperty WRITE setSizeFProperty); + Q_PROPERTY(QRect rectProperty READ rectProperty WRITE setRectProperty NOTIFY rectPropertyChanged); + Q_PROPERTY(QRect rectProperty2 READ rectProperty2 WRITE setRectProperty2); + Q_PROPERTY(QRectF rectFProperty READ rectFProperty WRITE setRectFProperty); + Q_PROPERTY(bool boolProperty READ boolProperty WRITE setBoolProperty); + Q_PROPERTY(QVariant variantProperty READ variantProperty WRITE setVariantProperty); + Q_PROPERTY(QVector3D vectorProperty READ vectorProperty WRITE setVectorProperty); + Q_PROPERTY(QUrl urlProperty READ urlProperty WRITE setUrlProperty); + + Q_PROPERTY(QDeclarativeScriptString scriptProperty READ scriptProperty WRITE setScriptProperty); + Q_PROPERTY(MyGroupedObject *grouped READ grouped CONSTANT); + Q_PROPERTY(MyGroupedObject *nullGrouped READ nullGrouped CONSTANT); + +public: + MyTypeObject() + : objectPropertyValue(0), componentPropertyValue(0) {} + + QString idValue; + QString id() const { + return idValue; + } + void setId(const QString &v) { + idValue = v; + } + + QObject *objectPropertyValue; + QObject *objectProperty() const { + return objectPropertyValue; + } + void setObjectProperty(QObject *v) { + objectPropertyValue = v; + } + + QDeclarativeComponent *componentPropertyValue; + QDeclarativeComponent *componentProperty() const { + return componentPropertyValue; + } + void setComponentProperty(QDeclarativeComponent *v) { + componentPropertyValue = v; + } + + enum MyFlag { FlagVal1 = 0x01, FlagVal2 = 0x02, FlagVal3 = 0x04 }; + Q_DECLARE_FLAGS(MyFlags, MyFlag) + MyFlags flagPropertyValue; + MyFlags flagProperty() const { + return flagPropertyValue; + } + void setFlagProperty(MyFlags v) { + flagPropertyValue = v; + } + + enum MyEnum { EnumVal1, EnumVal2 }; + MyEnum enumPropertyValue; + MyEnum enumProperty() const { + return enumPropertyValue; + } + void setEnumProperty(MyEnum v) { + enumPropertyValue = v; + } + + QString stringPropertyValue; + QString stringProperty() const { + return stringPropertyValue; + } + void setStringProperty(const QString &v) { + stringPropertyValue = v; + } + + uint uintPropertyValue; + uint uintProperty() const { + return uintPropertyValue; + } + void setUintProperty(const uint &v) { + uintPropertyValue = v; + } + + int intPropertyValue; + int intProperty() const { + return intPropertyValue; + } + void setIntProperty(const int &v) { + intPropertyValue = v; + } + + qreal realPropertyValue; + qreal realProperty() const { + return realPropertyValue; + } + void setRealProperty(const qreal &v) { + realPropertyValue = v; + } + + double doublePropertyValue; + double doubleProperty() const { + return doublePropertyValue; + } + void setDoubleProperty(const double &v) { + doublePropertyValue = v; + } + + float floatPropertyValue; + float floatProperty() const { + return floatPropertyValue; + } + void setFloatProperty(const float &v) { + floatPropertyValue = v; + } + + QColor colorPropertyValue; + QColor colorProperty() const { + return colorPropertyValue; + } + void setColorProperty(const QColor &v) { + colorPropertyValue = v; + } + + QDate datePropertyValue; + QDate dateProperty() const { + return datePropertyValue; + } + void setDateProperty(const QDate &v) { + datePropertyValue = v; + } + + QTime timePropertyValue; + QTime timeProperty() const { + return timePropertyValue; + } + void setTimeProperty(const QTime &v) { + timePropertyValue = v; + } + + QDateTime dateTimePropertyValue; + QDateTime dateTimeProperty() const { + return dateTimePropertyValue; + } + void setDateTimeProperty(const QDateTime &v) { + dateTimePropertyValue = v; + } + + QPoint pointPropertyValue; + QPoint pointProperty() const { + return pointPropertyValue; + } + void setPointProperty(const QPoint &v) { + pointPropertyValue = v; + } + + QPointF pointFPropertyValue; + QPointF pointFProperty() const { + return pointFPropertyValue; + } + void setPointFProperty(const QPointF &v) { + pointFPropertyValue = v; + } + + QSize sizePropertyValue; + QSize sizeProperty() const { + return sizePropertyValue; + } + void setSizeProperty(const QSize &v) { + sizePropertyValue = v; + } + + QSizeF sizeFPropertyValue; + QSizeF sizeFProperty() const { + return sizeFPropertyValue; + } + void setSizeFProperty(const QSizeF &v) { + sizeFPropertyValue = v; + } + + QRect rectPropertyValue; + QRect rectProperty() const { + return rectPropertyValue; + } + void setRectProperty(const QRect &v) { + rectPropertyValue = v; + emit rectPropertyChanged(); + } + + QRect rectPropertyValue2; + QRect rectProperty2() const { + return rectPropertyValue2; + } + void setRectProperty2(const QRect &v) { + rectPropertyValue2 = v; + } + + QRectF rectFPropertyValue; + QRectF rectFProperty() const { + return rectFPropertyValue; + } + void setRectFProperty(const QRectF &v) { + rectFPropertyValue = v; + } + + bool boolPropertyValue; + bool boolProperty() const { + return boolPropertyValue; + } + void setBoolProperty(const bool &v) { + boolPropertyValue = v; + } + + QVariant variantPropertyValue; + QVariant variantProperty() const { + return variantPropertyValue; + } + void setVariantProperty(const QVariant &v) { + variantPropertyValue = v; + } + + QVector3D vectorPropertyValue; + QVector3D vectorProperty() const { + return vectorPropertyValue; + } + void setVectorProperty(const QVector3D &v) { + vectorPropertyValue = v; + } + + QUrl urlPropertyValue; + QUrl urlProperty() const { + return urlPropertyValue; + } + void setUrlProperty(const QUrl &v) { + urlPropertyValue = v; + } + + QDeclarativeScriptString scriptPropertyValue; + QDeclarativeScriptString scriptProperty() const { + return scriptPropertyValue; + } + void setScriptProperty(const QDeclarativeScriptString &v) { + scriptPropertyValue = v; + } + + MyGroupedObject groupedValue; + MyGroupedObject *grouped() { return &groupedValue; } + + MyGroupedObject *nullGrouped() { return 0; } + + void doAction() { emit action(); } +signals: + void action(); + void rectPropertyChanged(); +}; +Q_DECLARE_OPERATORS_FOR_FLAGS(MyTypeObject::MyFlags) +QML_DECLARE_TYPE(MyTypeObject); + +class MyContainer : public QObject +{ + Q_OBJECT + Q_PROPERTY(QDeclarativeListProperty<QObject> children READ children) + Q_PROPERTY(QDeclarativeListProperty<MyInterface> qlistInterfaces READ qlistInterfaces) + Q_CLASSINFO("DefaultProperty", "children"); +public: + MyContainer() {} + + QDeclarativeListProperty<QObject> children() { return QDeclarativeListProperty<QObject>(this, m_children); } + QList<QObject *> *getChildren() { return &m_children; } + QDeclarativeListProperty<MyInterface> qlistInterfaces() { return QDeclarativeListProperty<MyInterface>(this, m_interfaces); } + QList<MyInterface *> *getQListInterfaces() { return &m_interfaces; } + + QList<QObject*> m_children; + QList<MyInterface *> m_interfaces; +}; + +QML_DECLARE_TYPE(MyContainer); + + +class MyPropertyValueSource : public QObject, public QDeclarativePropertyValueSource +{ + Q_OBJECT + Q_INTERFACES(QDeclarativePropertyValueSource) +public: + MyPropertyValueSource() + : QDeclarativePropertyValueSource() {} + + QDeclarativeProperty prop; + virtual void setTarget(const QDeclarativeProperty &p) + { + prop = p; + } +}; +QML_DECLARE_TYPE(MyPropertyValueSource); + +class MyDotPropertyObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(MyQmlObject *obj READ obj) + Q_PROPERTY(MyQmlObject *readWriteObj READ readWriteObj WRITE setReadWriteObj) +public: + MyDotPropertyObject() : m_rwobj(0), m_ownRWObj(false) {} + ~MyDotPropertyObject() + { + if (m_ownRWObj) + delete m_rwobj; + } + + MyQmlObject *obj() { return 0; } + + MyQmlObject *readWriteObj() + { + if (!m_rwobj) { + m_rwobj = new MyQmlObject; + m_ownRWObj = true; + } + return m_rwobj; + } + + void setReadWriteObj(MyQmlObject *obj) + { + if (m_ownRWObj) { + delete m_rwobj; + m_ownRWObj = false; + } + + m_rwobj = obj; + } + +private: + MyQmlObject *m_rwobj; + bool m_ownRWObj; +}; + +QML_DECLARE_TYPE(MyDotPropertyObject); + +namespace MyNamespace { + class MyNamespacedType : public QObject + { + Q_OBJECT + }; + + class MySecondNamespacedType : public QObject + { + Q_OBJECT + Q_PROPERTY(QDeclarativeListProperty<MyNamespace::MyNamespacedType> list READ list); + public: + QDeclarativeListProperty<MyNamespacedType> list() { return QDeclarativeListProperty<MyNamespacedType>(this, m_list); } + + private: + QList<MyNamespacedType *> m_list; + }; +} +QML_DECLARE_TYPE(MyNamespace::MyNamespacedType); +QML_DECLARE_TYPE(MyNamespace::MySecondNamespacedType); + +void registerTypes(); + +#endif // TESTTYPES_H diff --git a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp new file mode 100644 index 0000000..1ba4454 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp @@ -0,0 +1,1406 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <qtest.h> +#include <QtDeclarative/qdeclarativeengine.h> +#include <QtDeclarative/qdeclarativecomponent.h> +#include <QtCore/qfile.h> +#include <QtCore/qdebug.h> +#include <QtCore/qfileinfo.h> +#include <QtCore/qdir.h> + +#include <private/qdeclarativeproperty_p.h> +#include <private/qdeclarativemetatype_p.h> + +#include "testtypes.h" + +#include "../../../shared/util.h" + +/* +This test case covers QML language issues. This covers everything that does not +involve evaluating ECMAScript expressions and bindings. + +Evaluation of expressions and bindings is covered in qmlecmascript +*/ +class tst_qdeclarativelanguage : public QObject +{ + Q_OBJECT +public: + tst_qdeclarativelanguage() { + QDeclarativeMetaType::registerCustomStringConverter(qMetaTypeId<MyCustomVariantType>(), myCustomVariantTypeConverter); + QFileInfo fileInfo(__FILE__); + engine.addImportPath(fileInfo.absoluteDir().filePath(QLatin1String("data/lib"))); + } + +private slots: + void initTestCase(); + void cleanupTestCase(); + + void errors_data(); + void errors(); + + void simpleObject(); + void simpleContainer(); + void interfaceProperty(); + void interfaceQList(); + void assignObjectToSignal(); + void assignObjectToVariant(); + void assignLiteralSignalProperty(); + void assignQmlComponent(); + void assignBasicTypes(); + void assignTypeExtremes(); + void assignCompositeToType(); + void customParserTypes(); + void rootAsQmlComponent(); + void inlineQmlComponents(); + void idProperty(); + void autoNotifyConnection(); + void assignSignal(); + void dynamicProperties(); + void dynamicPropertiesNested(); + void listProperties(); + void dynamicObjectProperties(); + void dynamicSignalsAndSlots(); + void simpleBindings(); + void autoComponentCreation(); + void propertyValueSource(); + void attachedProperties(); + void dynamicObjects(); + void customVariantTypes(); + void valueTypes(); + void cppnamespace(); + void aliasProperties(); + void componentCompositeType(); + void i18n(); + void i18n_data(); + void onCompleted(); + void scriptString(); + void defaultPropertyListOrder(); + void declaredPropertyValues(); + + void importsBuiltin_data(); + void importsBuiltin(); + void importsLocal_data(); + void importsLocal(); + void importsRemote_data(); + void importsRemote(); + void importsInstalled_data(); + void importsInstalled(); + void importsOrder_data(); + void importsOrder(); + + void qmlAttachedPropertiesObjectMethod(); + + // regression tests for crashes + void crash1(); + void crash2(); + +private: + QDeclarativeEngine engine; + void testType(const QString& qml, const QString& type); +}; + +#define VERIFY_ERRORS(errorfile) \ + if (!errorfile) { \ + if (qgetenv("DEBUG") != "" && !component.errors().isEmpty()) \ + qWarning() << "Unexpected Errors:" << component.errors(); \ + QVERIFY(!component.isError()); \ + QVERIFY(component.errors().isEmpty()); \ + } else { \ + QFile file(QLatin1String(SRCDIR) + QLatin1String("/data/") + QLatin1String(errorfile)); \ + QVERIFY(file.open(QIODevice::ReadOnly)); \ + QByteArray data = file.readAll(); \ + file.close(); \ + QList<QByteArray> expected = data.split('\n'); \ + expected.removeAll(QByteArray("")); \ + QList<QDeclarativeError> errors = component.errors(); \ + QList<QByteArray> actual; \ + for (int ii = 0; ii < errors.count(); ++ii) { \ + const QDeclarativeError &error = errors.at(ii); \ + QByteArray errorStr = QByteArray::number(error.line()) + ":" + \ + QByteArray::number(error.column()) + ":" + \ + error.description().toUtf8(); \ + actual << errorStr; \ + } \ + if (qgetenv("DEBUG") != "" && expected != actual) \ + qWarning() << "Expected:" << expected << "Actual:" << actual; \ + if (qgetenv("QDECLARATIVELANGUAGE_UPDATEERRORS") != "" && expected != actual) {\ + QFile file(QLatin1String("data/") + QLatin1String(errorfile)); \ + QVERIFY(file.open(QIODevice::WriteOnly)); \ + for (int ii = 0; ii < actual.count(); ++ii) { \ + file.write(actual.at(ii)); file.write("\n"); \ + } \ + file.close(); \ + } else { \ + QCOMPARE(expected, actual); \ + } \ + } + +inline QUrl TEST_FILE(const QString &filename) +{ + QFileInfo fileInfo(__FILE__); + return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath(QLatin1String("data/") + filename)); +} + +inline QUrl TEST_FILE(const char *filename) +{ + return TEST_FILE(QLatin1String(filename)); +} + +void tst_qdeclarativelanguage::cleanupTestCase() +{ + QVERIFY(QFile::remove(TEST_FILE(QString::fromUtf8("I18nType\303\201\303\242\303\243\303\244\303\245.qml")).toLocalFile())); +} + +void tst_qdeclarativelanguage::errors_data() +{ + QTest::addColumn<QString>("file"); + QTest::addColumn<QString>("errorFile"); + QTest::addColumn<bool>("create"); + + QTest::newRow("nonexistantProperty.1") << "nonexistantProperty.1.qml" << "nonexistantProperty.1.errors.txt" << false; + QTest::newRow("nonexistantProperty.2") << "nonexistantProperty.2.qml" << "nonexistantProperty.2.errors.txt" << false; + QTest::newRow("nonexistantProperty.3") << "nonexistantProperty.3.qml" << "nonexistantProperty.3.errors.txt" << false; + QTest::newRow("nonexistantProperty.4") << "nonexistantProperty.4.qml" << "nonexistantProperty.4.errors.txt" << false; + QTest::newRow("nonexistantProperty.5") << "nonexistantProperty.5.qml" << "nonexistantProperty.5.errors.txt" << false; + QTest::newRow("nonexistantProperty.6") << "nonexistantProperty.6.qml" << "nonexistantProperty.6.errors.txt" << false; + + QTest::newRow("wrongType (string for int)") << "wrongType.1.qml" << "wrongType.1.errors.txt" << false; + QTest::newRow("wrongType (int for bool)") << "wrongType.2.qml" << "wrongType.2.errors.txt" << false; + QTest::newRow("wrongType (bad rect)") << "wrongType.3.qml" << "wrongType.3.errors.txt" << false; + + QTest::newRow("wrongType (invalid enum)") << "wrongType.4.qml" << "wrongType.4.errors.txt" << false; + QTest::newRow("wrongType (int for uint)") << "wrongType.5.qml" << "wrongType.5.errors.txt" << false; + QTest::newRow("wrongType (string for real)") << "wrongType.6.qml" << "wrongType.6.errors.txt" << false; + QTest::newRow("wrongType (int for color)") << "wrongType.7.qml" << "wrongType.7.errors.txt" << false; + QTest::newRow("wrongType (int for date)") << "wrongType.8.qml" << "wrongType.8.errors.txt" << false; + QTest::newRow("wrongType (int for time)") << "wrongType.9.qml" << "wrongType.9.errors.txt" << false; + QTest::newRow("wrongType (int for datetime)") << "wrongType.10.qml" << "wrongType.10.errors.txt" << false; + QTest::newRow("wrongType (string for point)") << "wrongType.11.qml" << "wrongType.11.errors.txt" << false; + QTest::newRow("wrongType (color for size)") << "wrongType.12.qml" << "wrongType.12.errors.txt" << false; + QTest::newRow("wrongType (number string for int)") << "wrongType.13.qml" << "wrongType.13.errors.txt" << false; + QTest::newRow("wrongType (int for string)") << "wrongType.14.qml" << "wrongType.14.errors.txt" << false; + QTest::newRow("wrongType (int for url)") << "wrongType.15.qml" << "wrongType.15.errors.txt" << false; + + QTest::newRow("readOnly.1") << "readOnly.1.qml" << "readOnly.1.errors.txt" << false; + QTest::newRow("readOnly.2") << "readOnly.2.qml" << "readOnly.2.errors.txt" << false; + QTest::newRow("readOnly.3") << "readOnly.3.qml" << "readOnly.3.errors.txt" << false; + + QTest::newRow("listAssignment.2") << "listAssignment.2.qml" << "listAssignment.2.errors.txt" << false; + QTest::newRow("listAssignment.3") << "listAssignment.3.qml" << "listAssignment.3.errors.txt" << false; + + QTest::newRow("invalidID.1") << "invalidID.qml" << "invalidID.errors.txt" << false; + QTest::newRow("invalidID.2") << "invalidID.2.qml" << "invalidID.2.errors.txt" << false; + QTest::newRow("invalidID.3") << "invalidID.3.qml" << "invalidID.3.errors.txt" << false; + QTest::newRow("invalidID.4") << "invalidID.4.qml" << "invalidID.4.errors.txt" << false; + QTest::newRow("invalidID.5") << "invalidID.5.qml" << "invalidID.5.errors.txt" << false; + QTest::newRow("invalidID.6") << "invalidID.6.qml" << "invalidID.6.errors.txt" << false; + + QTest::newRow("unsupportedProperty") << "unsupportedProperty.qml" << "unsupportedProperty.errors.txt" << false; + QTest::newRow("nullDotProperty") << "nullDotProperty.qml" << "nullDotProperty.errors.txt" << true; + QTest::newRow("fakeDotProperty") << "fakeDotProperty.qml" << "fakeDotProperty.errors.txt" << false; + QTest::newRow("duplicateIDs") << "duplicateIDs.qml" << "duplicateIDs.errors.txt" << false; + QTest::newRow("unregisteredObject") << "unregisteredObject.qml" << "unregisteredObject.errors.txt" << false; + QTest::newRow("empty") << "empty.qml" << "empty.errors.txt" << false; + QTest::newRow("missingObject") << "missingObject.qml" << "missingObject.errors.txt" << false; + QTest::newRow("failingComponent") << "failingComponentTest.qml" << "failingComponent.errors.txt" << false; + QTest::newRow("missingSignal") << "missingSignal.qml" << "missingSignal.errors.txt" << false; + QTest::newRow("finalOverride") << "finalOverride.qml" << "finalOverride.errors.txt" << false; + QTest::newRow("customParserIdNotAllowed") << "customParserIdNotAllowed.qml" << "customParserIdNotAllowed.errors.txt" << false; + + QTest::newRow("invalidGroupedProperty.1") << "invalidGroupedProperty.1.qml" << "invalidGroupedProperty.1.errors.txt" << false; + QTest::newRow("invalidGroupedProperty.2") << "invalidGroupedProperty.2.qml" << "invalidGroupedProperty.2.errors.txt" << false; + QTest::newRow("invalidGroupedProperty.3") << "invalidGroupedProperty.3.qml" << "invalidGroupedProperty.3.errors.txt" << false; + QTest::newRow("invalidGroupedProperty.4") << "invalidGroupedProperty.4.qml" << "invalidGroupedProperty.4.errors.txt" << false; + QTest::newRow("invalidGroupedProperty.5") << "invalidGroupedProperty.5.qml" << "invalidGroupedProperty.5.errors.txt" << false; + QTest::newRow("invalidGroupedProperty.6") << "invalidGroupedProperty.6.qml" << "invalidGroupedProperty.6.errors.txt" << false; + QTest::newRow("invalidGroupedProperty.7") << "invalidGroupedProperty.7.qml" << "invalidGroupedProperty.7.errors.txt" << true; + + QTest::newRow("importNamespaceConflict") << "importNamespaceConflict.qml" << "importNamespaceConflict.errors.txt" << false; + QTest::newRow("importVersionMissing (builtin)") << "importVersionMissingBuiltIn.qml" << "importVersionMissingBuiltIn.errors.txt" << false; + QTest::newRow("importVersionMissing (installed)") << "importVersionMissingInstalled.qml" << "importVersionMissingInstalled.errors.txt" << false; + QTest::newRow("invalidImportID") << "invalidImportID.qml" << "invalidImportID.errors.txt" << false; + + QTest::newRow("signal.1") << "signal.1.qml" << "signal.1.errors.txt" << false; + QTest::newRow("signal.2") << "signal.2.qml" << "signal.2.errors.txt" << false; + QTest::newRow("signal.3") << "signal.3.qml" << "signal.3.errors.txt" << false; + + QTest::newRow("property.1") << "property.1.qml" << "property.1.errors.txt" << false; + QTest::newRow("property.2") << "property.2.qml" << "property.2.errors.txt" << false; + QTest::newRow("property.3") << "property.3.qml" << "property.3.errors.txt" << false; + QTest::newRow("property.4") << "property.4.qml" << "property.4.errors.txt" << false; + QTest::newRow("property.5") << "property.5.qml" << "property.5.errors.txt" << false; + + QTest::newRow("Script.1") << "script.1.qml" << "script.1.errors.txt" << false; + QTest::newRow("Script.2") << "script.2.qml" << "script.2.errors.txt" << false; + QTest::newRow("Script.3") << "script.3.qml" << "script.3.errors.txt" << false; + QTest::newRow("Script.4") << "script.4.qml" << "script.4.errors.txt" << false; + QTest::newRow("Script.5") << "script.5.qml" << "script.5.errors.txt" << false; + QTest::newRow("Script.6") << "script.6.qml" << "script.6.errors.txt" << false; + QTest::newRow("Script.7") << "script.7.qml" << "script.7.errors.txt" << false; + QTest::newRow("Script.8") << "script.8.qml" << "script.8.errors.txt" << false; + QTest::newRow("Script.9") << "script.9.qml" << "script.9.errors.txt" << false; + QTest::newRow("Script.10") << "script.10.qml" << "script.10.errors.txt" << false; + QTest::newRow("Script.11") << "script.11.qml" << "script.11.errors.txt" << false; + QTest::newRow("Script.12") << "script.12.qml" << "script.12.errors.txt" << false; + + QTest::newRow("Component.1") << "component.1.qml" << "component.1.errors.txt" << false; + QTest::newRow("Component.2") << "component.2.qml" << "component.2.errors.txt" << false; + QTest::newRow("Component.3") << "component.3.qml" << "component.3.errors.txt" << false; + QTest::newRow("Component.4") << "component.4.qml" << "component.4.errors.txt" << false; + QTest::newRow("Component.5") << "component.5.qml" << "component.5.errors.txt" << false; + QTest::newRow("Component.6") << "component.6.qml" << "component.6.errors.txt" << false; + + QTest::newRow("invalidAttachedProperty.1") << "invalidAttachedProperty.1.qml" << "invalidAttachedProperty.1.errors.txt" << false; + QTest::newRow("invalidAttachedProperty.2") << "invalidAttachedProperty.2.qml" << "invalidAttachedProperty.2.errors.txt" << false; + QTest::newRow("invalidAttachedProperty.3") << "invalidAttachedProperty.3.qml" << "invalidAttachedProperty.3.errors.txt" << false; + QTest::newRow("invalidAttachedProperty.4") << "invalidAttachedProperty.4.qml" << "invalidAttachedProperty.4.errors.txt" << false; + QTest::newRow("invalidAttachedProperty.5") << "invalidAttachedProperty.5.qml" << "invalidAttachedProperty.5.errors.txt" << false; + QTest::newRow("invalidAttachedProperty.6") << "invalidAttachedProperty.6.qml" << "invalidAttachedProperty.6.errors.txt" << false; + QTest::newRow("invalidAttachedProperty.7") << "invalidAttachedProperty.7.qml" << "invalidAttachedProperty.7.errors.txt" << false; + QTest::newRow("invalidAttachedProperty.8") << "invalidAttachedProperty.8.qml" << "invalidAttachedProperty.8.errors.txt" << false; + QTest::newRow("invalidAttachedProperty.9") << "invalidAttachedProperty.9.qml" << "invalidAttachedProperty.9.errors.txt" << false; + QTest::newRow("invalidAttachedProperty.10") << "invalidAttachedProperty.10.qml" << "invalidAttachedProperty.10.errors.txt" << false; + QTest::newRow("invalidAttachedProperty.11") << "invalidAttachedProperty.11.qml" << "invalidAttachedProperty.11.errors.txt" << false; + + QTest::newRow("nestedErrors") << "nestedErrors.qml" << "nestedErrors.errors.txt" << false; + QTest::newRow("defaultGrouped") << "defaultGrouped.qml" << "defaultGrouped.errors.txt" << false; + QTest::newRow("emptySignal") << "emptySignal.qml" << "emptySignal.errors.txt" << false; + QTest::newRow("doubleSignal") << "doubleSignal.qml" << "doubleSignal.errors.txt" << false; + QTest::newRow("invalidRoot") << "invalidRoot.qml" << "invalidRoot.errors.txt" << false; + QTest::newRow("missingValueTypeProperty") << "missingValueTypeProperty.qml" << "missingValueTypeProperty.errors.txt" << false; + QTest::newRow("objectValueTypeProperty") << "objectValueTypeProperty.qml" << "objectValueTypeProperty.errors.txt" << false; +} + + +void tst_qdeclarativelanguage::errors() +{ + QFETCH(QString, file); + QFETCH(QString, errorFile); + QFETCH(bool, create); + + if (file == "invalidID.6.qml") + QTest::ignoreMessage(QtWarningMsg, "id \"StartsWithUpperCase\" is invalid: ids cannot start with uppercase letters"); + + QDeclarativeComponent component(&engine, TEST_FILE(file)); + + if(create) { + QObject *object = component.create(); + QVERIFY(object == 0); + } + + VERIFY_ERRORS(errorFile.toLatin1().constData()); +} + +void tst_qdeclarativelanguage::simpleObject() +{ + QDeclarativeComponent component(&engine, TEST_FILE("simpleObject.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); +} + +void tst_qdeclarativelanguage::simpleContainer() +{ + QDeclarativeComponent component(&engine, TEST_FILE("simpleContainer.qml")); + VERIFY_ERRORS(0); + MyContainer *container= qobject_cast<MyContainer*>(component.create()); + QVERIFY(container != 0); + QCOMPARE(container->getChildren()->count(),2); +} + +void tst_qdeclarativelanguage::interfaceProperty() +{ + QDeclarativeComponent component(&engine, TEST_FILE("interfaceProperty.qml")); + VERIFY_ERRORS(0); + MyQmlObject *object = qobject_cast<MyQmlObject*>(component.create()); + QVERIFY(object != 0); + QVERIFY(object->interface()); + QVERIFY(object->interface()->id == 913); +} + +void tst_qdeclarativelanguage::interfaceQList() +{ + QDeclarativeComponent component(&engine, TEST_FILE("interfaceQList.qml")); + VERIFY_ERRORS(0); + MyContainer *container= qobject_cast<MyContainer*>(component.create()); + QVERIFY(container != 0); + QVERIFY(container->getQListInterfaces()->count() == 2); + for(int ii = 0; ii < 2; ++ii) + QVERIFY(container->getQListInterfaces()->at(ii)->id == 913); +} + +void tst_qdeclarativelanguage::assignObjectToSignal() +{ + QDeclarativeComponent component(&engine, TEST_FILE("assignObjectToSignal.qml")); + VERIFY_ERRORS(0); + MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create()); + QVERIFY(object != 0); + QTest::ignoreMessage(QtWarningMsg, "MyQmlObject::basicSlot"); + emit object->basicSignal(); +} + +void tst_qdeclarativelanguage::assignObjectToVariant() +{ + QDeclarativeComponent component(&engine, TEST_FILE("assignObjectToVariant.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + QVariant v = object->property("a"); + QVERIFY(v.userType() == qMetaTypeId<QObject *>()); +} + +void tst_qdeclarativelanguage::assignLiteralSignalProperty() +{ + QDeclarativeComponent component(&engine, TEST_FILE("assignLiteralSignalProperty.qml")); + VERIFY_ERRORS(0); + MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create()); + QVERIFY(object != 0); + QCOMPARE(object->onLiteralSignal(), 10); +} + +// Test is an external component can be loaded and assigned (to a qlist) +void tst_qdeclarativelanguage::assignQmlComponent() +{ + QDeclarativeComponent component(&engine, TEST_FILE("assignQmlComponent.qml")); + VERIFY_ERRORS(0); + MyContainer *object = qobject_cast<MyContainer *>(component.create()); + QVERIFY(object != 0); + QVERIFY(object->getChildren()->count() == 1); + QObject *child = object->getChildren()->at(0); + QCOMPARE(child->property("x"), QVariant(10)); + QCOMPARE(child->property("y"), QVariant(11)); +} + +// Test literal assignment to all the basic types +void tst_qdeclarativelanguage::assignBasicTypes() +{ + QDeclarativeComponent component(&engine, TEST_FILE("assignBasicTypes.qml")); + VERIFY_ERRORS(0); + MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create()); + QVERIFY(object != 0); + QCOMPARE(object->flagProperty(), MyTypeObject::FlagVal1 | MyTypeObject::FlagVal3); + QCOMPARE(object->enumProperty(), MyTypeObject::EnumVal2); + QCOMPARE(object->stringProperty(), QString("Hello World!")); + QCOMPARE(object->uintProperty(), uint(10)); + QCOMPARE(object->intProperty(), -19); + QCOMPARE((float)object->realProperty(), float(23.2)); + QCOMPARE((float)object->doubleProperty(), float(-19.7)); + QCOMPARE((float)object->floatProperty(), float(8.5)); + QCOMPARE(object->colorProperty(), QColor("red")); + QCOMPARE(object->dateProperty(), QDate(1982, 11, 25)); + QCOMPARE(object->timeProperty(), QTime(11, 11, 32)); + QCOMPARE(object->dateTimeProperty(), QDateTime(QDate(2009, 5, 12), QTime(13, 22, 1))); + QCOMPARE(object->pointProperty(), QPoint(99,13)); + QCOMPARE(object->pointFProperty(), QPointF((float)-10.1, (float)12.3)); + QCOMPARE(object->sizeProperty(), QSize(99, 13)); + QCOMPARE(object->sizeFProperty(), QSizeF((float)0.1, (float)0.2)); + QCOMPARE(object->rectProperty(), QRect(9, 7, 100, 200)); + QCOMPARE(object->rectFProperty(), QRectF((float)1000.1, (float)-10.9, (float)400, (float)90.99)); + QCOMPARE(object->boolProperty(), true); + QCOMPARE(object->variantProperty(), QVariant("Hello World!")); + QCOMPARE(object->vectorProperty(), QVector3D(10, 1, 2.2)); + QCOMPARE(object->urlProperty(), component.url().resolved(QUrl("main.qml"))); + QVERIFY(object->objectProperty() != 0); + MyTypeObject *child = qobject_cast<MyTypeObject *>(object->objectProperty()); + QVERIFY(child != 0); + QCOMPARE(child->intProperty(), 8); +} + +// Test edge case type assignments +void tst_qdeclarativelanguage::assignTypeExtremes() +{ + QDeclarativeComponent component(&engine, TEST_FILE("assignTypeExtremes.qml")); + VERIFY_ERRORS(0); + MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create()); + QVERIFY(object != 0); + QCOMPARE(object->uintProperty(), 0xEE6B2800); + QCOMPARE(object->intProperty(), -0x77359400); +} + +// Test that a composite type can assign to a property of its base type +void tst_qdeclarativelanguage::assignCompositeToType() +{ + QDeclarativeComponent component(&engine, TEST_FILE("assignCompositeToType.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); +} + +// Tests that custom parser types can be instantiated +void tst_qdeclarativelanguage::customParserTypes() +{ + QDeclarativeComponent component(&engine, TEST_FILE("customParserTypes.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + QVERIFY(object->property("count") == QVariant(2)); +} + +// Tests that the root item can be a custom component +void tst_qdeclarativelanguage::rootAsQmlComponent() +{ + QDeclarativeComponent component(&engine, TEST_FILE("rootAsQmlComponent.qml")); + VERIFY_ERRORS(0); + MyContainer *object = qobject_cast<MyContainer *>(component.create()); + QVERIFY(object != 0); + QCOMPARE(object->property("x"), QVariant(11)); + QCOMPARE(object->getChildren()->count(), 2); +} + +// Tests that components can be specified inline +void tst_qdeclarativelanguage::inlineQmlComponents() +{ + QDeclarativeComponent component(&engine, TEST_FILE("inlineQmlComponents.qml")); + VERIFY_ERRORS(0); + MyContainer *object = qobject_cast<MyContainer *>(component.create()); + QVERIFY(object != 0); + QCOMPARE(object->getChildren()->count(), 1); + QDeclarativeComponent *comp = qobject_cast<QDeclarativeComponent *>(object->getChildren()->at(0)); + QVERIFY(comp != 0); + MyQmlObject *compObject = qobject_cast<MyQmlObject *>(comp->create()); + QVERIFY(compObject != 0); + QCOMPARE(compObject->value(), 11); +} + +// Tests that types that have an id property have it set +void tst_qdeclarativelanguage::idProperty() +{ + QDeclarativeComponent component(&engine, TEST_FILE("idProperty.qml")); + VERIFY_ERRORS(0); + MyContainer *object = qobject_cast<MyContainer *>(component.create()); + QVERIFY(object != 0); + QCOMPARE(object->getChildren()->count(), 1); + MyTypeObject *child = + qobject_cast<MyTypeObject *>(object->getChildren()->at(0)); + QVERIFY(child != 0); + QCOMPARE(child->id(), QString("myObjectId")); + QCOMPARE(object->property("object"), QVariant::fromValue((QObject *)child)); +} + +// Tests automatic connection to notify signals if "onBlahChanged" syntax is used +// even if the notify signal for "blah" is not called "blahChanged" +void tst_qdeclarativelanguage::autoNotifyConnection() +{ + QDeclarativeComponent component(&engine, TEST_FILE("autoNotifyConnection.qml")); + VERIFY_ERRORS(0); + MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create()); + QVERIFY(object != 0); + QMetaProperty prop = object->metaObject()->property(object->metaObject()->indexOfProperty("receivedNotify")); + QVERIFY(prop.isValid()); + + QCOMPARE(prop.read(object), QVariant::fromValue(false)); + object->setPropertyWithNotify(1); + QCOMPARE(prop.read(object), QVariant::fromValue(true)); +} + +// Tests that signals can be assigned to +void tst_qdeclarativelanguage::assignSignal() +{ + QDeclarativeComponent component(&engine, TEST_FILE("assignSignal.qml")); + VERIFY_ERRORS(0); + MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create()); + QVERIFY(object != 0); + QTest::ignoreMessage(QtWarningMsg, "MyQmlObject::basicSlot"); + emit object->basicSignal(); + QTest::ignoreMessage(QtWarningMsg, "MyQmlObject::basicSlotWithArgs(9)"); + emit object->basicParameterizedSignal(9); +} + +// Tests the creation and assignment of dynamic properties +void tst_qdeclarativelanguage::dynamicProperties() +{ + QDeclarativeComponent component(&engine, TEST_FILE("dynamicProperties.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + QCOMPARE(object->property("intProperty"), QVariant(10)); + QCOMPARE(object->property("boolProperty"), QVariant(false)); + QCOMPARE(object->property("doubleProperty"), QVariant(-10.1)); + QCOMPARE(object->property("realProperty"), QVariant((qreal)-19.9)); + QCOMPARE(object->property("stringProperty"), QVariant("Hello World!")); + QCOMPARE(object->property("urlProperty"), QVariant(TEST_FILE("main.qml"))); + QCOMPARE(object->property("colorProperty"), QVariant(QColor("red"))); + QCOMPARE(object->property("dateProperty"), QVariant(QDate(1945, 9, 2))); + QCOMPARE(object->property("varProperty"), QVariant("Hello World!")); + QCOMPARE(object->property("variantProperty"), QVariant(12)); +} + +// Test that nested types can use dynamic properties +void tst_qdeclarativelanguage::dynamicPropertiesNested() +{ + QDeclarativeComponent component(&engine, TEST_FILE("dynamicPropertiesNested.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("super_a").toInt(), 11); // Overridden + QCOMPARE(object->property("super_c").toInt(), 14); // Inherited + QCOMPARE(object->property("a").toInt(), 13); // New + QCOMPARE(object->property("b").toInt(), 12); // New + + delete object; +} + +// Tests the creation and assignment to dynamic list properties +void tst_qdeclarativelanguage::listProperties() +{ + QDeclarativeComponent component(&engine, TEST_FILE("listProperties.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("test").toInt(), 2); +} + +// Tests the creation and assignment of dynamic object properties +// ### Not complete +void tst_qdeclarativelanguage::dynamicObjectProperties() +{ + QDeclarativeComponent component(&engine, TEST_FILE("dynamicObjectProperties.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + QVERIFY(object->property("objectProperty") == qVariantFromValue((QObject*)0)); + QVERIFY(object->property("objectProperty2") != qVariantFromValue((QObject*)0)); +} + +// Tests the declaration of dynamic signals and slots +void tst_qdeclarativelanguage::dynamicSignalsAndSlots() +{ + QTest::ignoreMessage(QtDebugMsg, "1921"); + + QDeclarativeComponent component(&engine, TEST_FILE("dynamicSignalsAndSlots.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + QVERIFY(object->metaObject()->indexOfMethod("signal1()") != -1); + QVERIFY(object->metaObject()->indexOfMethod("signal2()") != -1); + QVERIFY(object->metaObject()->indexOfMethod("slot1()") != -1); + QVERIFY(object->metaObject()->indexOfMethod("slot2()") != -1); + + QCOMPARE(object->property("test").toInt(), 0); + QMetaObject::invokeMethod(object, "slot3", Qt::DirectConnection, Q_ARG(QVariant, QVariant(10))); + QCOMPARE(object->property("test").toInt(), 10); +} + +void tst_qdeclarativelanguage::simpleBindings() +{ + QDeclarativeComponent component(&engine, TEST_FILE("simpleBindings.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + QCOMPARE(object->property("value1"), QVariant(10)); + QCOMPARE(object->property("value2"), QVariant(10)); + QCOMPARE(object->property("value3"), QVariant(21)); + QCOMPARE(object->property("value4"), QVariant(10)); + QCOMPARE(object->property("objectProperty"), QVariant::fromValue(object)); +} + +void tst_qdeclarativelanguage::autoComponentCreation() +{ + QDeclarativeComponent component(&engine, TEST_FILE("autoComponentCreation.qml")); + VERIFY_ERRORS(0); + MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create()); + QVERIFY(object != 0); + QVERIFY(object->componentProperty() != 0); + MyTypeObject *child = qobject_cast<MyTypeObject *>(object->componentProperty()->create()); + QVERIFY(child != 0); + QCOMPARE(child->realProperty(), qreal(9)); +} + +void tst_qdeclarativelanguage::propertyValueSource() +{ + { + QDeclarativeComponent component(&engine, TEST_FILE("propertyValueSource.qml")); + VERIFY_ERRORS(0); + MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create()); + QVERIFY(object != 0); + + QList<QObject *> valueSources; + QObjectList allChildren = object->findChildren<QObject*>(); + foreach (QObject *child, allChildren) { + if (qobject_cast<QDeclarativePropertyValueSource *>(child)) + valueSources.append(child); + } + + QCOMPARE(valueSources.count(), 1); + MyPropertyValueSource *valueSource = + qobject_cast<MyPropertyValueSource *>(valueSources.at(0)); + QVERIFY(valueSource != 0); + QCOMPARE(valueSource->prop.object(), object); + QCOMPARE(valueSource->prop.name(), QString(QLatin1String("intProperty"))); + } + + { + QDeclarativeComponent component(&engine, TEST_FILE("propertyValueSource.2.qml")); + VERIFY_ERRORS(0); + MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create()); + QVERIFY(object != 0); + + QList<QObject *> valueSources; + QObjectList allChildren = object->findChildren<QObject*>(); + foreach (QObject *child, allChildren) { + if (qobject_cast<QDeclarativePropertyValueSource *>(child)) + valueSources.append(child); + } + + QCOMPARE(valueSources.count(), 1); + MyPropertyValueSource *valueSource = + qobject_cast<MyPropertyValueSource *>(valueSources.at(0)); + QVERIFY(valueSource != 0); + QCOMPARE(valueSource->prop.object(), object); + QCOMPARE(valueSource->prop.name(), QString(QLatin1String("intProperty"))); + } +} + +void tst_qdeclarativelanguage::attachedProperties() +{ + QDeclarativeComponent component(&engine, TEST_FILE("attachedProperties.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + QObject *attached = qmlAttachedPropertiesObject<MyQmlObject>(object); + QVERIFY(attached != 0); + QCOMPARE(attached->property("value"), QVariant(10)); + QCOMPARE(attached->property("value2"), QVariant(13)); +} + +// Tests non-static object properties +void tst_qdeclarativelanguage::dynamicObjects() +{ + QDeclarativeComponent component(&engine, TEST_FILE("dynamicObject.1.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); +} + +// Tests the registration of custom variant string converters +void tst_qdeclarativelanguage::customVariantTypes() +{ + QDeclarativeComponent component(&engine, TEST_FILE("customVariantTypes.qml")); + VERIFY_ERRORS(0); + MyQmlObject *object = qobject_cast<MyQmlObject*>(component.create()); + QVERIFY(object != 0); + QCOMPARE(object->customType().a, 10); +} + +void tst_qdeclarativelanguage::valueTypes() +{ + QDeclarativeComponent component(&engine, TEST_FILE("valueTypes.qml")); + VERIFY_ERRORS(0); + + QString message = QLatin1String("QML MyTypeObject (") + component.url().toString() + + QLatin1String(":2:1) Binding loop detected for property \"rectProperty.width\""); + QTest::ignoreMessage(QtWarningMsg, qPrintable(message)); + QTest::ignoreMessage(QtWarningMsg, qPrintable(message)); + + MyTypeObject *object = qobject_cast<MyTypeObject*>(component.create()); + QVERIFY(object != 0); + + + QCOMPARE(object->rectProperty(), QRect(10, 11, 12, 13)); + QCOMPARE(object->rectProperty2(), QRect(10, 11, 12, 13)); + QCOMPARE(object->intProperty(), 10); + object->doAction(); + QCOMPARE(object->rectProperty(), QRect(12, 11, 14, 13)); + QCOMPARE(object->rectProperty2(), QRect(12, 11, 14, 13)); + QCOMPARE(object->intProperty(), 12); + + // ### +#if 0 + QDeclarativeProperty p(object, "rectProperty.x"); + QCOMPARE(p.read(), QVariant(12)); + p.write(13); + QCOMPARE(p.read(), QVariant(13)); + + quint32 r = QDeclarativePropertyPrivate::saveValueType(p.coreIndex(), p.valueTypeCoreIndex()); + QDeclarativeProperty p2; + QDeclarativePropertyPrivate::restore(p2, r, object); + QCOMPARE(p2.read(), QVariant(13)); +#endif +} + +void tst_qdeclarativelanguage::cppnamespace() +{ + { + QDeclarativeComponent component(&engine, TEST_FILE("cppnamespace.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + delete object; + } + + { + QDeclarativeComponent component(&engine, TEST_FILE("cppnamespace.2.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + delete object; + } +} + +void tst_qdeclarativelanguage::aliasProperties() +{ + // Simple "int" alias + { + QDeclarativeComponent component(&engine, TEST_FILE("alias.1.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + // Read through alias + QCOMPARE(object->property("valueAlias").toInt(), 10); + object->setProperty("value", QVariant(13)); + QCOMPARE(object->property("valueAlias").toInt(), 13); + + // Write throught alias + object->setProperty("valueAlias", QVariant(19)); + QCOMPARE(object->property("valueAlias").toInt(), 19); + QCOMPARE(object->property("value").toInt(), 19); + + delete object; + } + + // Complex object alias + { + QDeclarativeComponent component(&engine, TEST_FILE("alias.2.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + // Read through alias + MyQmlObject *v = + qvariant_cast<MyQmlObject *>(object->property("aliasObject")); + QVERIFY(v != 0); + QCOMPARE(v->value(), 10); + + // Write through alias + MyQmlObject *v2 = new MyQmlObject(); + v2->setParent(object); + object->setProperty("aliasObject", qVariantFromValue(v2)); + MyQmlObject *v3 = + qvariant_cast<MyQmlObject *>(object->property("aliasObject")); + QVERIFY(v3 != 0); + QCOMPARE(v3, v2); + + delete object; + } + + // Nested aliases + { + QDeclarativeComponent component(&engine, TEST_FILE("alias.3.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("value").toInt(), 1892); + QCOMPARE(object->property("value2").toInt(), 1892); + + object->setProperty("value", QVariant(1313)); + QCOMPARE(object->property("value").toInt(), 1313); + QCOMPARE(object->property("value2").toInt(), 1313); + + object->setProperty("value2", QVariant(8080)); + QCOMPARE(object->property("value").toInt(), 8080); + QCOMPARE(object->property("value2").toInt(), 8080); + + delete object; + } + + // Enum aliases + { + QDeclarativeComponent component(&engine, TEST_FILE("alias.4.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("enumAlias").toInt(), 1); + + delete object; + } + + // Id aliases + { + QDeclarativeComponent component(&engine, TEST_FILE("alias.5.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + QVariant v = object->property("otherAlias"); + QCOMPARE(v.userType(), qMetaTypeId<MyQmlObject*>()); + MyQmlObject *o = qvariant_cast<MyQmlObject*>(v); + QCOMPARE(o->value(), 10); + + delete o; + + v = object->property("otherAlias"); + QCOMPARE(v.userType(), qMetaTypeId<MyQmlObject*>()); + o = qvariant_cast<MyQmlObject*>(v); + QVERIFY(o == 0); + + delete object; + } + + // Nested aliases - this used to cause a crash + { + QDeclarativeComponent component(&engine, TEST_FILE("alias.6.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("a").toInt(), 1923); + } + + // Ptr Alias Cleanup - check that aliases to ptr types return 0 + // if the object aliased to is removed + { + QDeclarativeComponent component(&engine, TEST_FILE("alias.7.qml")); + VERIFY_ERRORS(0); + + QObject *object = component.create(); + QVERIFY(object != 0); + + QObject *object1 = qvariant_cast<QObject *>(object->property("object")); + QVERIFY(object1 != 0); + QObject *object2 = qvariant_cast<QObject *>(object1->property("object")); + QVERIFY(object2 != 0); + + QObject *alias = qvariant_cast<QObject *>(object->property("aliasedObject")); + QVERIFY(alias == object2); + + delete object1; + + QObject *alias2 = object; // "Random" start value + int status = -1; + void *a[] = { &alias2, 0, &status }; + QMetaObject::metacall(object, QMetaObject::ReadProperty, + object->metaObject()->indexOfProperty("aliasedObject"), a); + QVERIFY(alias2 == 0); + } + + // Simple composite type + { + QDeclarativeComponent component(&engine, TEST_FILE("alias.8.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("value").toInt(), 10); + + delete object; + } + + // Complex composite type + { + QDeclarativeComponent component(&engine, TEST_FILE("alias.9.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("value").toInt(), 10); + + delete object; + } +} + +// Test that the root element in a composite type can be a Component +void tst_qdeclarativelanguage::componentCompositeType() +{ + QDeclarativeComponent component(&engine, TEST_FILE("componentCompositeType.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); +} + +class TestType : public QObject { + Q_OBJECT +public: + TestType(QObject *p=0) : QObject(p) {} +}; + +class TestType2 : public QObject { + Q_OBJECT +public: + TestType2(QObject *p=0) : QObject(p) {} +}; + +void tst_qdeclarativelanguage::i18n_data() +{ + QTest::addColumn<QString>("file"); + QTest::addColumn<QString>("stringProperty"); + QTest::newRow("i18nStrings") << "i18nStrings.qml" << QString::fromUtf8("Test \303\241\303\242\303\243\303\244\303\245 (5 accented 'a' letters)"); + QTest::newRow("i18nDeclaredPropertyNames") << "i18nDeclaredPropertyNames.qml" << QString::fromUtf8("Test \303\241\303\242\303\243\303\244\303\245: 10"); + QTest::newRow("i18nDeclaredPropertyUse") << "i18nDeclaredPropertyUse.qml" << QString::fromUtf8("Test \303\241\303\242\303\243\303\244\303\245: 15"); + QTest::newRow("i18nScript") << "i18nScript.qml" << QString::fromUtf8("Test \303\241\303\242\303\243\303\244\303\245: 20"); + QTest::newRow("i18nType") << "i18nType.qml" << QString::fromUtf8("Test \303\241\303\242\303\243\303\244\303\245: 30"); + QTest::newRow("i18nNameSpace") << "i18nNameSpace.qml" << QString::fromUtf8("Test \303\241\303\242\303\243\303\244\303\245: 40"); +} + +void tst_qdeclarativelanguage::i18n() +{ + QFETCH(QString, file); + QFETCH(QString, stringProperty); + QDeclarativeComponent component(&engine, TEST_FILE(file)); + VERIFY_ERRORS(0); + MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create()); + QVERIFY(object != 0); + QCOMPARE(object->stringProperty(), stringProperty); + + delete object; +} + +// Check that the Component::onCompleted attached property works +void tst_qdeclarativelanguage::onCompleted() +{ + QDeclarativeComponent component(&engine, TEST_FILE("onCompleted.qml")); + VERIFY_ERRORS(0); + QTest::ignoreMessage(QtDebugMsg, "Completed 6 10"); + QTest::ignoreMessage(QtDebugMsg, "Completed 6 10"); + QTest::ignoreMessage(QtDebugMsg, "Completed 10 11"); + QObject *object = component.create(); + QVERIFY(object != 0); +} + +// Check that assignments to QDeclarativeScriptString properties work +void tst_qdeclarativelanguage::scriptString() +{ + QDeclarativeComponent component(&engine, TEST_FILE("scriptString.qml")); + VERIFY_ERRORS(0); + + MyTypeObject *object = qobject_cast<MyTypeObject*>(component.create()); + QVERIFY(object != 0); + QCOMPARE(object->scriptProperty().script(), QString("foo + bar")); + QCOMPARE(object->scriptProperty().scopeObject(), object); + QCOMPARE(object->scriptProperty().context(), qmlContext(object)); + + QVERIFY(object->grouped() != 0); + QCOMPARE(object->grouped()->script().script(), QString("console.log(1921)")); + QCOMPARE(object->grouped()->script().scopeObject(), object); + QCOMPARE(object->grouped()->script().context(), qmlContext(object)); +} + +// Check that default property assignments are correctly spliced into explicit +// property assignments +void tst_qdeclarativelanguage::defaultPropertyListOrder() +{ + QDeclarativeComponent component(&engine, TEST_FILE("defaultPropertyListOrder.qml")); + VERIFY_ERRORS(0); + + MyContainer *container = qobject_cast<MyContainer *>(component.create()); + QVERIFY(container != 0); + + QCOMPARE(container->getChildren()->count(), 6); + QCOMPARE(container->getChildren()->at(0)->property("index"), QVariant(0)); + QCOMPARE(container->getChildren()->at(1)->property("index"), QVariant(1)); + QCOMPARE(container->getChildren()->at(2)->property("index"), QVariant(2)); + QCOMPARE(container->getChildren()->at(3)->property("index"), QVariant(3)); + QCOMPARE(container->getChildren()->at(4)->property("index"), QVariant(4)); + QCOMPARE(container->getChildren()->at(5)->property("index"), QVariant(5)); +} + +void tst_qdeclarativelanguage::declaredPropertyValues() +{ + QDeclarativeComponent component(&engine, TEST_FILE("declaredPropertyValues.qml")); + QEXPECT_FAIL("", "QTBUG-7860", Abort); + VERIFY_ERRORS(0); +} + +// Check that first child of qml is of given type. Empty type insists on error. +void tst_qdeclarativelanguage::testType(const QString& qml, const QString& type) +{ + QDeclarativeComponent component(&engine); + component.setData(qml.toUtf8(), TEST_FILE("empty.qml")); // just a file for relative local imports + + QTRY_VERIFY(!component.isLoading()); + + if (type.isEmpty()) { + QVERIFY(component.isError()); + } else { + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + QCOMPARE(QString(object->metaObject()->className()), type); + } +} + +QML_DECLARE_TYPE(TestType) +QML_DECLARE_TYPE(TestType2) + +// Import tests (QT-558) + +void tst_qdeclarativelanguage::importsBuiltin_data() +{ + // QT-610 + + QTest::addColumn<QString>("qml"); + QTest::addColumn<QString>("type"); + + // import built-ins + QTest::newRow("missing import") + << "Test {}" + << ""; + QTest::newRow("not in version 0.0") + << "import com.nokia.Test 0.0\n" + "Test {}" + << ""; + QTest::newRow("in version 0.0") + << "import com.nokia.Test 0.0\n" + "TestTP {}" + << "TestType"; + QTest::newRow("qualified in version 0.0") + << "import com.nokia.Test 0.0 as T\n" + "T.TestTP {}" + << "TestType"; + QTest::newRow("in version 1.0") + << "import com.nokia.Test 1.0\n" + "Test {}" + << "TestType"; + QTest::newRow("qualified wrong") + << "import com.nokia.Test 1.0 as T\n" // QT-610 + "Test {}" + << ""; + QTest::newRow("qualified right") + << "import com.nokia.Test 1.0 as T\n" + "T.Test {}" + << "TestType"; + QTest::newRow("qualified right but not in version 0.0") + << "import com.nokia.Test 0.0 as T\n" + "T.Test {}" + << ""; + QTest::newRow("in version 1.1") + << "import com.nokia.Test 1.1\n" + "Test {}" + << "TestType"; + QTest::newRow("in version 1.3") + << "import com.nokia.Test 1.3\n" + "Test {}" + << "TestType"; + QTest::newRow("in version 1.5") + << "import com.nokia.Test 1.5\n" + "Test {}" + << "TestType"; + QTest::newRow("changed in version 1.8") + << "import com.nokia.Test 1.8\n" + "Test {}" + << "TestType2"; + QTest::newRow("in version 1.12") + << "import com.nokia.Test 1.12\n" + "Test {}" + << "TestType2"; + QTest::newRow("old in version 1.9") + << "import com.nokia.Test 1.9\n" + "OldTest {}" + << "TestType"; + QTest::newRow("old in version 1.11") + << "import com.nokia.Test 1.11\n" + "OldTest {}" + << "TestType"; + QTest::newRow("multiversion 1") + << "import com.nokia.Test 1.11\n" + "import com.nokia.Test 1.12\n" + "Test {}" + << "TestType2"; + QTest::newRow("multiversion 2") + << "import com.nokia.Test 1.11\n" + "import com.nokia.Test 1.12\n" + "OldTest {}" + << "TestType"; + QTest::newRow("qualified multiversion 3") + << "import com.nokia.Test 1.0 as T0\n" + "import com.nokia.Test 1.8 as T8\n" + "T0.Test {}" + << "TestType"; + QTest::newRow("qualified multiversion 4") + << "import com.nokia.Test 1.0 as T0\n" + "import com.nokia.Test 1.8 as T8\n" + "T8.Test {}" + << "TestType2"; +} + +void tst_qdeclarativelanguage::importsBuiltin() +{ + QFETCH(QString, qml); + QFETCH(QString, type); + testType(qml,type); +} + +void tst_qdeclarativelanguage::importsLocal_data() +{ + QTest::addColumn<QString>("qml"); + QTest::addColumn<QString>("type"); + + // import locals + QTest::newRow("local import") + << "import \"subdir\"\n" // QT-613 + "Test {}" + << "QDeclarativeRectangle"; + QTest::newRow("local import second") + << "import Qt 4.6\nimport \"subdir\"\n" + "Test {}" + << "QDeclarativeRectangle"; + QTest::newRow("local import subsubdir") + << "import Qt 4.6\nimport \"subdir/subsubdir\"\n" + "SubTest {}" + << "QDeclarativeRectangle"; + QTest::newRow("local import QTBUG-7721 A") + << "subdir.Test {}" // no longer allowed (QTBUG-7721) + << ""; + QTest::newRow("local import QTBUG-7721 B") + << "import \"subdir\" as X\n" + "X.subsubdir.SubTest {}" // no longer allowed (QTBUG-7721) + << ""; + QTest::newRow("local import as") + << "import \"subdir\" as T\n" + "T.Test {}" + << "QDeclarativeRectangle"; + QTest::newRow("wrong local import as") + << "import \"subdir\" as T\n" + "Test {}" + << ""; + QTest::newRow("library precedence over local import") + << "import \"subdir\"\n" + "import com.nokia.Test 1.0\n" + "Test {}" + << "TestType"; +} + +void tst_qdeclarativelanguage::importsLocal() +{ + QFETCH(QString, qml); + QFETCH(QString, type); + testType(qml,type); +} + +void tst_qdeclarativelanguage::importsRemote_data() +{ + QTest::addColumn<QString>("qml"); + QTest::addColumn<QString>("type"); + + QString serverdir = "http://127.0.0.1:14445/qtest/declarative/qmllanguage"; + + QTest::newRow("remote import") << "import \""+serverdir+"\"\nTest {}" << "QDeclarativeRectangle"; + QTest::newRow("remote import with subdir") << "import \""+serverdir+"\"\nTestSubDir {}" << "QDeclarativeText"; + QTest::newRow("remote import with local") << "import \""+serverdir+"\"\nTestLocal {}" << "QDeclarativeImage"; +} + +#include "testhttpserver.h" + +void tst_qdeclarativelanguage::importsRemote() +{ + QFETCH(QString, qml); + QFETCH(QString, type); + + TestHTTPServer server(14445); + server.serveDirectory(SRCDIR); + + testType(qml,type); +} + +void tst_qdeclarativelanguage::importsInstalled_data() +{ + // QT-610 + + QTest::addColumn<QString>("qml"); + QTest::addColumn<QString>("type"); + + // import installed + QTest::newRow("installed import 0") + << "import com.nokia.installedtest 0.0\n" + "InstalledTestTP {}" + << "QDeclarativeRectangle"; + QTest::newRow("installed import 0 as TP") + << "import com.nokia.installedtest 0.0 as TP\n" + "TP.InstalledTestTP {}" + << "QDeclarativeRectangle"; + QTest::newRow("installed import 1") + << "import com.nokia.installedtest 1.0\n" + "InstalledTest {}" + << "QDeclarativeRectangle"; + QTest::newRow("installed import 2") + << "import com.nokia.installedtest 1.3\n" + "InstalledTest {}" + << "QDeclarativeRectangle"; + QTest::newRow("installed import 3") + << "import com.nokia.installedtest 1.4\n" + "InstalledTest {}" + << "QDeclarativeText"; + QTest::newRow("installed import 4") + << "import com.nokia.installedtest 1.10\n" + "InstalledTest {}" + << "QDeclarativeText"; + QTest::newRow("installed import visibility") // QT-614 + << "import com.nokia.installedtest 1.4\n" + "PrivateType {}" + << ""; +} + +void tst_qdeclarativelanguage::importsInstalled() +{ + QFETCH(QString, qml); + QFETCH(QString, type); + testType(qml,type); +} + + +void tst_qdeclarativelanguage::importsOrder_data() +{ + QTest::addColumn<QString>("qml"); + QTest::addColumn<QString>("type"); + + QTest::newRow("installed import overrides 1") << + "import com.nokia.installedtest 1.0\n" + "import com.nokia.installedtest 1.4\n" + "InstalledTest {}" + << "QDeclarativeText"; + QTest::newRow("installed import overrides 2") << + "import com.nokia.installedtest 1.4\n" + "import com.nokia.installedtest 1.0\n" + "InstalledTest {}" + << "QDeclarativeRectangle"; + QTest::newRow("installed import re-overrides 1") << + "import com.nokia.installedtest 1.4\n" + "import com.nokia.installedtest 1.0\n" + "import com.nokia.installedtest 1.4\n" + "InstalledTest {}" + << "QDeclarativeText"; + QTest::newRow("installed import re-overrides 2") << + "import com.nokia.installedtest 1.4\n" + "import com.nokia.installedtest 1.0\n" + "import com.nokia.installedtest 1.4\n" + "import com.nokia.installedtest 1.0\n" + "InstalledTest {}" + << "QDeclarativeRectangle"; + + QTest::newRow("installed import versus builtin 1") << + "import com.nokia.installedtest 1.5\n" + "import Qt 4.6\n" + "Rectangle {}" + << "QDeclarativeRectangle"; + QTest::newRow("installed import versus builtin 2") << + "import Qt 4.6\n" + "import com.nokia.installedtest 1.5\n" + "Rectangle {}" + << "QDeclarativeText"; + QTest::newRow("namespaces cannot be overridden by types 1") << + "import Qt 4.6 as Rectangle\n" + "import com.nokia.installedtest 1.5\n" + "Rectangle {}" + << ""; + QTest::newRow("namespaces cannot be overridden by types 2") << + "import Qt 4.6 as Rectangle\n" + "import com.nokia.installedtest 1.5\n" + "Rectangle.Image {}" + << "QDeclarativeImage"; +} + +void tst_qdeclarativelanguage::importsOrder() +{ + QFETCH(QString, qml); + QFETCH(QString, type); + testType(qml,type); +} + +void tst_qdeclarativelanguage::qmlAttachedPropertiesObjectMethod() +{ + QObject object; + + QCOMPARE(qmlAttachedPropertiesObject<MyQmlObject>(&object, false), (QObject *)0); + QCOMPARE(qmlAttachedPropertiesObject<MyQmlObject>(&object, true), (QObject *)0); + + { + QDeclarativeComponent component(&engine, TEST_FILE("qmlAttachedPropertiesObjectMethod.1.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(qmlAttachedPropertiesObject<MyQmlObject>(object, false), (QObject *)0); + QVERIFY(qmlAttachedPropertiesObject<MyQmlObject>(object, true) != 0); + } + + { + QDeclarativeComponent component(&engine, TEST_FILE("qmlAttachedPropertiesObjectMethod.2.qml")); + VERIFY_ERRORS(0); + QObject *object = component.create(); + QVERIFY(object != 0); + + QVERIFY(qmlAttachedPropertiesObject<MyQmlObject>(object, false) != 0); + QVERIFY(qmlAttachedPropertiesObject<MyQmlObject>(object, true) != 0); + } +} + +void tst_qdeclarativelanguage::crash1() +{ + QDeclarativeComponent component(&engine); + component.setData("import Qt 4.6\nComponent {}", QUrl()); +} + +void tst_qdeclarativelanguage::crash2() +{ + QDeclarativeComponent component(&engine, TEST_FILE("crash2.qml")); +} + + +void tst_qdeclarativelanguage::initTestCase() +{ + registerTypes(); + + QML_REGISTER_TYPE(com.nokia.Test, 0, 0, TestTP, TestType); + QML_REGISTER_TYPE(com.nokia.Test, 1, 0, Test, TestType); + QML_REGISTER_TYPE(com.nokia.Test, 1, 5, Test, TestType); + QML_REGISTER_TYPE(com.nokia.Test, 1, 8, Test, TestType2); + QML_REGISTER_TYPE(com.nokia.Test, 1, 9, OldTest, TestType); + QML_REGISTER_TYPE(com.nokia.Test, 1, 12, Test, TestType2); + + // Create locale-specific file + // For POSIX, this will just be data/I18nType.qml, since POSIX is 7-bit + // For iso8859-1 locale, this will just be data/I18nType?????.qml where ????? is 5 8-bit characters + // For utf-8 locale, this will be data/I18nType??????????.qml where ?????????? is 5 8-bit characters, UTF-8 encoded + QFile in(TEST_FILE(QLatin1String("I18nType30.qml")).toLocalFile()); + QVERIFY(in.open(QIODevice::ReadOnly)); + QFile out(TEST_FILE(QString::fromUtf8("I18nType\303\201\303\242\303\243\303\244\303\245.qml")).toLocalFile()); + QVERIFY(out.open(QIODevice::WriteOnly)); + out.write(in.readAll()); +} + +QTEST_MAIN(tst_qdeclarativelanguage) + +#include "tst_qdeclarativelanguage.moc" |