diff options
Diffstat (limited to 'tests/auto/declarative/qdeclarativeecmascript/data/sequenceConversion.array.qml')
-rw-r--r-- | tests/auto/declarative/qdeclarativeecmascript/data/sequenceConversion.array.qml | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/sequenceConversion.array.qml b/tests/auto/declarative/qdeclarativeecmascript/data/sequenceConversion.array.qml deleted file mode 100644 index 52abda1e55..0000000000 --- a/tests/auto/declarative/qdeclarativeecmascript/data/sequenceConversion.array.qml +++ /dev/null @@ -1,193 +0,0 @@ -import QtQuick 2.0 -import Qt.test 1.0 - -Item { - id: root - objectName: "root" - - MySequenceConversionObject { - id: msco - objectName: "msco" - } - - property bool success: false - - property variant intList - property variant qrealList - property variant boolList - property variant stringList - - function indexedAccess() { - intList = msco.intListProperty; - var jsIntList = msco.intListProperty; - qrealList = msco.qrealListProperty; - var jsQrealList = msco.qrealListProperty; - boolList = msco.boolListProperty; - var jsBoolList = msco.boolListProperty; - stringList = msco.stringListProperty; - var jsStringList = msco.stringListProperty; - - // Three cases: direct property modification, variant copy modification, js var reference modification. - // Only the first and third should "write back" to the original QObject Q_PROPERTY; the second one - // should have no effect whatsoever to maintain "property variant" semantics (see e.g., valuetype). - success = true; - - msco.intListProperty[1] = 33; - if (msco.intListProperty[1] != 33) success = false; // ensure write back - intList[1] = 44; - if (intList[1] == 44) success = false; // ensure no effect - jsIntList[1] = 55; - if (jsIntList[1] != 55 - || jsIntList[1] != msco.intListProperty[1]) success = false; // ensure write back - - msco.qrealListProperty[1] = 33.3; - if (msco.qrealListProperty[1] != 33.3) success = false; // ensure write back - qrealList[1] = 44.4; - if (qrealList[1] == 44.4) success = false; // ensure no effect - jsQrealList[1] = 55.5; - if (jsQrealList[1] != 55.5 - || jsQrealList[1] != msco.qrealListProperty[1]) success = false; // ensure write back - - msco.boolListProperty[1] = true; - if (msco.boolListProperty[1] != true) success = false; // ensure write back - boolList[1] = true; - if (boolList[1] != false) success = false; // ensure no effect - jsBoolList[1] = false; - if (jsBoolList[1] != false - || jsBoolList[1] != msco.boolListProperty[1]) success = false; // ensure write back - - msco.stringListProperty[1] = "changed"; - if (msco.stringListProperty[1] != "changed") success = false; // ensure write back - stringList[1] = "changed"; - if (stringList[1] != "second") success = false; // ensure no effect - jsStringList[1] = "different"; - if (jsStringList[1] != "different" - || jsStringList[1] != msco.stringListProperty[1]) success = false; // ensure write back - } - - function arrayOperations() { - success = true; - var expected = 0; - var expectedStr = ""; - - // ecma262r3 defines array as implementing Length and Put. Test put here. - msco.intListProperty.asdf = 5; // shouldn't work, only indexes are valid names. - if (msco.intListProperty.asdf == 5) success = false; - msco.intListProperty[3] = 38; // should work. - if (msco.intListProperty[3] != 38) success = false; - msco.intListProperty[199] = 200; // should work, and should set length to 200. - if (msco.intListProperty[199] != 200) success = false; - if (msco.intListProperty.length != 200) success = false; - - // test indexed deleter - msco.intListProperty = [ 1, 2, 3, 4, 5 ]; - delete msco.intListProperty[-1]; - expected = [ 1, 2, 3, 4, 5 ]; - if (msco.intListProperty.toString() != expected.toString()) success = false; - delete msco.intListProperty[0]; - expected = [ 0, 2, 3, 4, 5 ]; - if (msco.intListProperty.toString() != expected.toString()) success = false; - delete msco.intListProperty[2]; - expected = [ 0, 2, 0, 4, 5 ]; - if (msco.intListProperty.toString() != expected.toString()) success = false; - delete msco.intListProperty[7]; - expected = [ 0, 2, 0, 4, 5 ]; - if (msco.intListProperty.toString() != expected.toString()) success = false; - - // other operations are defined on the array prototype; see if they work. - - // splice - msco.intListProperty = [ 0, 1, 2, 3, 4, 5, 6, 7 ]; - msco.intListProperty.splice(1,3, 33, 44, 55, 66); - expected = [ 0, 33, 44, 55, 66, 4, 5, 6, 7 ]; - if (msco.intListProperty.toString() != expected.toString()) success = false; - msco.intListProperty = [ 0, 1, 2, 3, 4, 5, 6, 7 ]; - msco.intListProperty.splice(1, 3); - expected = [ 0, 4, 5, 6, 7 ]; - if (msco.intListProperty.toString() != expected.toString()) success = false; - - msco.qrealListProperty = [ 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1 ]; - msco.qrealListProperty.splice(1,3, 33.33, 44.44, 55.55, 66.66); - expected = [ 0.1, 33.33, 44.44, 55.55, 66.66, 4.1, 5.1, 6.1, 7.1 ]; - if (msco.qrealListProperty.toString() != expected.toString()) success = false; - msco.qrealListProperty = [ 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1 ]; - msco.qrealListProperty.splice(1,3); - expected = [ 0.1, 4.1, 5.1, 6.1, 7.1 ]; - if (msco.qrealListProperty.toString() != expected.toString()) success = false; - - msco.boolListProperty = [ false, true, true, false, false, true, false, true ]; - msco.boolListProperty.splice(1,3, false, true, false, false); - expected = [ false, false, true, false, false, false, true, false, true ]; - if (msco.boolListProperty.toString() != expected.toString()) success = false; - msco.boolListProperty = [ false, true, true, false, false, true, false, true ]; - msco.boolListProperty.splice(1,3); - expected = [ false, false, true, false, true ]; - if (msco.boolListProperty.toString() != expected.toString()) success = false; - - msco.stringListProperty = [ "one", "two", "three", "four", "five", "six", "seven", "eight" ]; - msco.stringListProperty.splice(1,3, "nine", "ten", "eleven", "twelve"); - expected = [ "one", "nine", "ten", "eleven", "twelve", "five", "six", "seven", "eight" ]; - if (msco.stringListProperty.toString() != expected.toString()) success = false; - msco.stringListProperty = [ "one", "two", "three", "four", "five", "six", "seven", "eight" ]; - msco.stringListProperty.splice(0,3); - expected = [ "four", "five", "six", "seven", "eight" ]; - if (msco.stringListProperty.toString() != expected.toString()) success = false; - - // pop - msco.intListProperty = [ 0, 1, 2, 3, 4, 5, 6, 7 ]; - var poppedVal = msco.intListProperty.pop(); - expected = [ 0, 1, 2, 3, 4, 5, 6 ]; - if (msco.intListProperty.toString() != expected.toString()) success = false; - expected = 7; - if (poppedVal != expected) success = false; - } - - property variant variantList: [ 1, 2, 3, 4, 5 ]; - property variant variantList2: [ 1, 2, 3, 4, 5 ]; - function testEqualitySemantics() { - // ensure equality semantics match JS array equality semantics - success = true; - - msco.intListProperty = [ 1, 2, 3, 4, 5 ]; - msco.intListProperty2 = [ 1, 2, 3, 4, 5 ]; - var jsIntList = [ 1, 2, 3, 4, 5 ]; - var jsIntList2 = [ 1, 2, 3, 4, 5 ]; - - if (jsIntList != jsIntList) success = false; - if (jsIntList == jsIntList2) success = false; - if (jsIntList == msco.intListProperty) success = false; - if (jsIntList == variantList) success = false; - - if (msco.intListProperty != msco.intListProperty) success = false; - if (msco.intListProperty == msco.intListProperty2) success = false; - if (msco.intListProperty == jsIntList) success = false; - if (msco.intListProperty == variantList) success = false; - - if (variantList == variantList) return false; - if (variantList == variantList2) return false; - if (variantList == msco.intListProperty) return false; - if (variantList == jsIntList) return false; - - if ((jsIntList == jsIntList2) != (jsIntList == msco.intListProperty)) success = false; - if ((jsIntList == jsIntList2) != (msco.intListProperty == msco.intListProperty2)) success = false; - if ((jsIntList == jsIntList) != (msco.intListProperty == msco.intListProperty)) success = false; - if ((jsIntList == variantList) != (msco.intListProperty == variantList)) success = false; - if ((variantList == jsIntList) != (variantList == msco.intListProperty)) success = false; - if ((msco.intListProperty == variantList) != (variantList == msco.intListProperty)) success = false; - } - - property bool referenceDeletion: false - function testReferenceDeletion() { - referenceDeletion = true; - var testObj = msco.generateTestObject(); - testObj.intListProperty = [1, 2, 3, 4, 5]; - var testSequence = testObj.intListProperty; - var prevString = testSequence.toString(); - var prevValueOf = testSequence.valueOf(); - var prevLength = testSequence.length; - msco.deleteTestObject(testObj); // delete referenced object. - if (testSequence.toString() == prevString) referenceDeletion = false; - if (testSequence.valueOf() == prevValueOf) referenceDeletion = false; - if (testSequence.length == prevLength) referenceDeletion = false; - } -} |