aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml
Commit message (Collapse)AuthorAgeFilesLines
...
| * Fix qmlClearTypeRegistrations testsAlan Alpert2013-09-175-1/+209
| | | | | | | | | | | | | | | | | | | | The manual test now tests that QtQuick can be loaded second try, and an autotest has been added to ensure that the function does not affect correctness. Task-Number: QTBUG-32078 Change-Id: Ifd55e12c2c31e2e181054f897f10f02a2811c5d1 Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
* | Make QQmlAbstractUrlInterceptor publicAlan Alpert2013-09-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | A supporting class for file selectors and qml import control, it allows redirecting local file paths (use a QNAM for remote paths). All work was done previously for Qt 5.1, including tests. This is just making it public for Qt 5.2. Change-Id: Icb319cc23200541c8e4088b2d400e9af94f3eee5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Correctly convert an invalid QDateTime to JSLars Knoll2013-09-183-0/+51
| | | | | | | | | | | | | | Task-number: QTBUG-33539 Change-Id: I645db2e12e3b46731c0bef04e2d48abb71650974 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Temporarily disable tst_QJSEngine tests to allow qtbase dev integrationMitch Curtis2013-09-181-24/+28
| | | | | | | | | | | | | | | | | | | | | | Temporarily disables: - tst_QJSEngine::dateConversionJSQt() - tst_QJSEngine::dateConversionQtJS() so that https://codereview.qt-project.org/#change,65560 can merge. Change-Id: I415daf1c5bd137e1905773f88fe5ebaaab1e0a06 Reviewed-by: John Layt <jlayt@kde.org>
* | Fix handling of empty ValuesLars Knoll2013-09-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Make things consistent between 32 and 64 bit again Adjust test results after the changes Almost all uses of Value::empty() will get removed in the future, but for now this gets all our tests to pass again. Change-Id: I44784a43432e78febbdfe78115c9be2a3e3ece76 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Skip unstable testsLars Knoll2013-09-181-0/+2
| | | | | | | | | | | | | | | | | | | | We can't test GC reliably due to our GC being conservative currently. Once we moved over to an exact GC, we can re-enable the test. Change-Id: I6778ed9bee3b41372705f6b41c1379d224335e53 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Convert most remaining return values from Value to ReturnedValueLars Knoll2013-09-181-11/+16
| | | | | | | | | | Change-Id: If8b0c3b91be50678693868c10fefc3678008834d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Convert builtin methods to return a ReturnedValueLars Knoll2013-09-181-3/+3
| | | | | | | | | | Change-Id: I6b75adbf53a5be0deab023d2eed98ce2a7915551 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Rename QV4::ValueScope to QV4::ScopeLars Knoll2013-09-181-3/+3
| | | | | | | | | | | | | | | | The class is going to be used all over the place, so let's give it a short name :) Change-Id: If61543cb2c885e7fbb95c8fc4d0e870097c352ed Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Require a ValueScope for ScopedCallData as wellLars Knoll2013-09-181-3/+4
| | | | | | | | | | | | | | | | This brings things more in line with ScopedValue, and also simplifies cleanup of Scoped values. Change-Id: If5f1466b4e13c629d56c1e7c638937f61ba48f77 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Use a ReturnedValue for Managed::call()Lars Knoll2013-09-181-1/+2
| | | | | | | | | | Change-Id: Ief2d75e9789dd367c603d90dc0fe5316a0d055e3 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Add qml toolAlan Alpert2013-09-177-11/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This tool simply runs QML files using a QQmlApplicationEngine. It is configurable so as to behave, by default, like qmlscene in that it will automatically place non-Window QtQuick 2 Items inside a QQuickWindow with the size of the root item. The configuration is extensible so that other GUI scenes can also use it by altering the configuration files in their installation. On OS X, it is an app bundle, and handles the QFileOpenEvent so that it can be the tool with which qml files are usually launched by double-clicking. (This does not break the ability to use it on the command line too: the options still work, you just have to give the path to the executable inside the bundle.) Change-Id: I6bac813ce188be54842a78d7b532fcf2d54dc443 Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
* | Remove qSort usages from declarativeGiuseppe D'Angelo2013-09-131-1/+3
| | | | | | | | | | | | | | | | | | QtAlgorithms is getting deprecated, see http://www.mail-archive.com/development@qt-project.org/msg01603.html Change-Id: I8fa7d0186cc8f0ba562695974829e37f1eb87f2f Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Use a ReturnedValue when converting to String or ObjectLars Knoll2013-09-121-1/+1
| | | | | | | | | | | | | | | | Also rename Value::toQString() to Value::toQStringNoThrow(), and add a throwing toQString() method for JS use. Change-Id: I821b33fc61abb7d08839df965fd337685f61a545 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Fix return type checks in test.Erik Verbruggen2013-09-112-11/+23
| | | | | | | | | | | | | | | | Same problem as 3dbc7a72c7e38b2a34df3a9ef496547c795420af fixed in another test. Same solution. Change-Id: Ib476239e567c43e4657487c34cfc7157a1f5d33f Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Move CallData onto the JS stackLars Knoll2013-09-111-11/+15
| | | | | | | | | | Change-Id: I22e853acfd2da337344b581bb0412c5f9930c510 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | V4 debugger: change agent API to work on all debuggers.Erik Verbruggen2013-09-101-7/+7
| | | | | | | | | | | | | | | | | | From a client point of view, there is no way to know which engine is executing which script. So, instead of passing in a debugger for a specific engine, have the agent set breakpoints on all debuggers. Change-Id: I53b8cbc1bdc02c7705042f2ac3a99a041992c134 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Make it possible to handle pointers to QObject derived in QML.Stephen Kelly2013-09-103-3/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This way, properties of QObject derived types can be read in QML code for example: Q_PROPERTY(MyObject* obj READ obj CONSTANT) Previously, only QObject* types could be read by QML: Q_PROPERTY(QObject* obj READ obj CONSTANT) This meant that multiple properties and methods had to be created for classes which were relevant to both QML and non-QML code. This patch lifts that restriction. As a consequence, we can also remove a Q_EXPECT_FAIL from the qqmllanguage unit test. That test was introduced in commit 92562eacbc3c (Allow signal parameters which are custom QML object-types, 2012-07-13) to document knowledge of the limitation while fixing it as much as possible. Task-number: QTBUG-26662 Change-Id: Ic85fa73c6f3655189438ec509765bae2eab9993a Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Change access mode for functions declared in qmlCaroline Chao2013-09-101-4/+1
| | | | | | | | | | | | | | | | | | | | Give the method a QMetaMethod::Public access instead of a QMetaMethod::Protected one. This is valid and is also needed when using the qmlplugindump tool with composite types. Change-Id: Ie1660716d8767cdc949f04a2f324799f2d2fe6c5 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Tests: Re-enabled tests for access type of QMetaObject::SignalCaroline Chao2013-09-091-2/+4
| | | | | | | | | | | | | | QMetaMethod::Signal access is now QMetaMethod:Public in qtbase. Change-Id: If1a3e76889bd25fb20ba6ed1e3b8206053acd8d9 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Fix return type checks in test.Erik Verbruggen2013-09-091-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | When calling into JavaScript, the specific type of the return value can differ if that return value is a number. This is not only the case for non-integral numbers, or numbers that do not fit into the (signed) integer range, but it also depends on which optimizations are run. to check if the return value is of a number type, use this method instead of checking against a specific userType. Change-Id: I0464c062bd617c83b7a1e887f7853aa5cd8f43e4 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Tests: Disabled temporarily access type tests of QMetaMethod::SignalCaroline Chao2013-09-091-2/+3
| | | | | | | | | | | | | | | | | | Change in qtbase to make the QMetaMethod signals access Public instead of Protected. Change-Id: I2de17fdc7edb896eb82ae8f467919e4636904cf6 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Merge branch 'stable' into devSergio Ahumada2013-09-065-1/+91
|\| | | | | | | | | | | | | | | | | Conflicts: src/qml/debugger/qv8debugservice.cpp src/qml/qml/v8/qv8engine.cpp tests/auto/quick/qquickitem/qquickitem.pro Change-Id: Ic4a1dcdd8b8a84155d2f2abefdf1da5c3a56af31
| * Fix crash tst_qqmllanguageDominik Holland2013-09-051-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | qmlClearTypeRegistrations() shouldn't be called when instances of QQmlEngine are still open. This can lead to unexpected behavior. For the qmlClearTypeRegistrations() function there is separate autotest Task-number: QTBUG-32078 Change-Id: I32612bc82602593d902bbffc58911e427b50524f Reviewed-by: Alan Alpert <aalpert@blackberry.com>
| * Debugger: Fix crash when app exits while debuggingKai Koehne2013-08-214-0/+91
| | | | | | | | | | | | | | | | Make sure we don't access an already deleted v8engine any more. Task-number: QTBUG-33100 Change-Id: Ic517577ae30b41375cbf9f787cfe0a29121171e2 Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
* | Fix qqmllocale test to use correct spec and time zoneJohn Layt2013-09-051-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By including the +10:00 offset in the date strings the test is actually creating Qt::OffsetFromUTC datetimes, not QT::LocalTime datetimes. The only reason the test currently passes is due to a bug in the QLocale datetime formatter which uses the current system daylight time abbreviation in all cases regardless of the datetime spec or if daylight or standard time. Change 61774 fixes this bug but cannot be merged as this test now fails. This change fixes the bug by removing the offset, causing Qt:LocalTime datetimes to be created which pass the test both before and after change 61774. See https://codereview.qt-project.org/#change,61774 Change-Id: I1642ab7c8aa516b703216f3791e2fc60866d1895 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* | change calling convention for JS function callsLars Knoll2013-09-021-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | This allows faster pass through of the data if we have nested calls. Also make sure we always reserve at least QV4::Global::ReservedArgumentCount Values on the stack to avoid stack corruption. Change-Id: I42976460f1ef11a333d4adda70fba8daac66acf3 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | The fast and the furious, register drift.Erik Verbruggen2013-08-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable the register allocator for X86_64 on Linux and MacOS. The implications are: - handle as much as possible with current code with as few changes as possible - temporarily force the register allocator to spill unop/binop arguments to the stack by doing a call in the implementation (as is the current case), so no change is needed here - only have loadThis and loadConst handle registers - have any method that might need to handle registrers actually cope with them - the inline versions of binops are not generated, as they cannot cope with registers. This will change when ISel for binops is added in the next patch. This means that we are still running with the handbrakes on, but allow for full-throttle in certain/limited cases. Note about the changed test: multiplication always returns a Number (double), so the operands are passed as doubles, so __qmljs_mul will return a double. For addition this is different: because it might return a Number or a String, the operands are passed as whatever fits best. So __qmljs_add will return an int when both operands are ints. Hence the change to the tests. Change-Id: If5bd7dffca8f7de5ba45af700b9c7bb568fc74b7 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Improve reliability of propertyVarOwnership testSimon Hausmann2013-08-272-3/+9
| | | | | | | | | | | | | | | | | | | | In the last expect-to-collect-a-QObject test, avoid calling gc() from within JavaScript and call it from C++ instead with zap stacking. That reduces the probability of finding an old reference on the stack that would keep the object alive. Change-Id: Ia9c66dd188f31264a70ad4dbd20356d16aa7a057 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Allow for function declarations inside conditionalsSimon Hausmann2013-08-231-0/+18
| | | | | | | | | | | | | | | | | | This is strictly speaking a regression from 5.1/v8, which allows for that as real world JavaScript appears to require it. Task-number: QTBUG-33064 Change-Id: Iceaca84373f12fb08459ed007afb25b5a705fa31 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Don't crash with deferred propertiesAlan Alpert2013-08-224-0/+49
| | | | | | | | | | | | | | | | | | | | | | There are cases where a qmlExecuteDeferred(o) can be postponed until the context of o is being destroyed, at which point it's too late to create an object in that context. Task-number: QTBUG-33112 Change-Id: I7f981b5e34e3cb8a52c00de4742a7242d7e4df54 Reviewed-by: Christopher Adams <chris.adams@jollamobile.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-08-191-0/+4
|\| | | | | | | | | | | | | | | Conflicts: tests/auto/quick/qquickgridview/qquickgridview.pro tests/auto/quick/qquickitem/qquickitem.pro Change-Id: Ic54cafbdda1ac22757d2ee65dcc63a1b167c7556
| * test: Mark tst_qqmlmoduleplugin::incorrectPluginCase() as XFAILSergio Ahumada2013-08-131-0/+4
| | | | | | | | | | | | | | | | | | Mark incorrectPluginCase() as expected failure on OS X 10.8 Task-number: QTBUG-32652 Change-Id: I8fd2c0ceacabfc74defe84fc6538b268145c5110 Reviewed-by: Simo Fält <simo.falt@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | Fix tst_qquickfolderlistmodel flakiness using QSignalSpy::wait.David Faure2013-08-161-16/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The signal is emitted in a thread, so creating the spy afterwards is racy (due to isSignalConnected() at the beginning of QMetaObject::activate). Creating the spy before hand fixes the race, and using QSignalSpy::wait() leads to much smaller code, in addition. Note that the call to wait() itself isn't racy, even if it happens "after" the signal emission: the signal goes via the event loop so it will always be received by the main thread within the call to wait(), never before. In addition setPath() is called once upon creation, and again via the setProperty call. If we don't wait for the initial listing to happen, we're replacing it, and then folderChanged is never emitted. Change-Id: Iab7eada2e9db8ba710f05bc3b82941c782f36467 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Improve reliability of v4 debugger testsSimon Hausmann2013-08-151-1/+1
| | | | | | | | | | | | | | | | | | Sometimes the test hangs on shutdown. Don't wait for the finished signal to be emitted with an event loop, instead do the QThread equivalent of pthread_join: wait(). Change-Id: I3583e8366c08fc0446682d124d86df4ffa3290d3 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Say hello to Qt.labs.settingsJ-P Nurmi2013-08-149-1/+1013
| | | | | | | | | | Change-Id: Id4970555b2cbbc2df893dd6269fb8b884ce06e45 Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
* | Improve reliability of tst_qqmlcomponent::onDestructionLookup auto test on ↵Simon Hausmann2013-08-122-1/+18
| | | | | | | | | | | | | | | | | | | | | | Windows The test relies on exact garbage collection, which we can't offer anymore. But we can use the same tricks as in qqmlecmascript to improve the changes of a successful collect significantly. Change-Id: I7b3d7eca7a9bdb551a01a5a3da80549196c45f23 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* | Fix tst_qqmlecmascript::scope() and behavioural compatibility with v8 based qmlSimon Hausmann2013-08-081-1/+0
| | | | | | | | | | | | | | | | | | | | | | In the V8 based QML the global object would come _before_ the "QML global object", which is the QML context (wrapper). We had a bunch of tests that verify the exact scope chain and with this "compatibility" fix we can re-enable them. Also fix missing prototype setup for the console object. Change-Id: Ib3886f2d86472eb752a6ad1a2d8d89709548c5b4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Fix another bug with automatic semicolon insertionSimon Hausmann2013-08-081-0/+5
| | | | | | | | | | | | | | Avoid empty statements after else. Change-Id: Ia7782a3371bc79c7e93857aa252309d2824a5a9e Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Fix hasOwnProperty on various types wrapped in QMLSimon Hausmann2013-08-081-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | * Change semantics of Object::query to not walk the prototype chain but let the caller do that where needed (__hasProperty__) * Re-implement query in various places * Implement method_hasOwnProperty to fall back to query() if getOwnProperty failed * Fix missing prototype initialization in some qml wrappers, as well as missing base class calls to ::get() Change-Id: Ic2a702fd5ff3be2ff3c8317a8a24f99940a9594f Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge "Merge branch 'stable' into dev" into refs/staging/devSergio Ahumada2013-08-061-0/+28
|\ \
| * | Merge branch 'stable' into devSergio Ahumada2013-08-051-0/+28
| |\| | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I06f79bcbde13c7b12905492a17dbcbb4a594e557
| | * FolderListModel: Do not return invalid URLs like "file:" when navigating up.Friedemann Kleint2013-07-291-0/+28
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-32139 Change-Id: I715b97eb85bc4235de6a2bb696131efae56477fd Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | | Fix some GC related tests to work with MSVCSimon Hausmann2013-08-062-9/+37
| | | | | | | | | | | | | | | | | | | | | | | | Using alloca instead of memset we can convince even MSVC to allocate memory on the stack, to overwrite any previous dead V4 pointers. Change-Id: Ic01bebfc6368e9c3ce1f6155a0f0ea206b90764c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Skip the date time conversion tests on WindowsSimon Hausmann2013-08-051-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | There's an issue in QDateTime, now that we're using that in our ECMAScript date implementation... Change-Id: I7599900a670097623d1b7e5b9bb086ef43d6e7e6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Disable some GC sensitive tests with MSVCSimon Hausmann2013-08-051-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | We can't get these tests to work reliably with MSVC because it depends on how MSVC optimizes away memory stores that are "dead" stores for the compiler but not for our conservative collector. Change-Id: Ia5ca197573a09358c220d926deccaaf0bacc3a0b Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Fix race condition in tst_QQuickFolderListModel::basicPropertiesSimon Hausmann2013-08-051-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | The FLM updates its contents asynchronously using a thread, so before we query for the new properties after changing the folder, make sure the thread finished updating. Change-Id: Icbd72801f639f9dffdc0dd85fbbd8b3ee53fedda Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Improve reliability of GC related testsSimon Hausmann2013-07-297-32/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes propertyVarCircular2 in clang release builds for example. Some of the QML/GC related tests had functions like function deassign() { someVariableThatWasholdingSomethingThatShouldBeCollectedNow = null; gc(); } which work fine with an exact GC like in v8, but with our conservative collector they are not that reliable and much more vulnerable to a reference to the object still being around somewhere. So to improve the reliability of the test, this patch moves the gc() calls out of the JavaScript function and back to the C++ caller side (these functions are invoked via QMetaObject::invokeMethod), where the existing gc() helper function will call the collector and also process posted deferred deletion events for QObjects. Change-Id: I8c1f715d56d66bc567ea8bd1575f171460b15ac8 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* | | Silence qqmlecmascript::propertyVarInheritance failures with clang release ↵Simon Hausmann2013-07-261-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | builds There's no equivalent to #pragma GCC optimize ("O0") yet, so we cannot run these test (sort of) reliably with clang. Change-Id: Ie41d3ba7911cefacca00165941761b20579107a2 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* | | Initial support for debugging in the v4 interpreterSimon Hausmann2013-07-263-1/+296
| | | | | | | | | | | | | | | | | | | | | | | | | | | This adds breakpoint support to the Debugger, a helper function in the engine for enabling debugging (which will switch from JIT to the interpreter) and a DebuggingAgent interface, for use by v4 clients. Change-Id: I78e17a6cbe7196b0dfe4ee157fc028532131caa3 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>