Commit Graph

54 Commits

Author SHA1 Message Date
JC Brand 9a2ded5a9a Remove global lodash 2020-12-29 15:12:45 +01:00
JC Brand 3f40098144 Render logo for registration form
Also fix showing of version number in login form
2020-12-29 12:16:23 +01:00
JC Brand 9372ad2dff register: Use lit-html to render templates 2020-12-29 11:49:25 +01:00
JC Brand da131715ba Use lit-html to render form fields 2020-12-28 18:25:51 +01:00
JC Brand 16ca8044f8 Add experimental support for running the XMPP conneciton inside a shared worker
Still lacks inter-tab communication to update state across tabs, i.e.
when sending a 1-on-1 message in one tab, it doesn't appear in another,
because that information is not available via the websocket connection.

- Create a new `Connection` class that extends Strophe.Connection and
    move related code from `converse-core.js` into this class.
- Store the session in localStorage when using a worker
- Move XEP-0156 code to connection.js
    This allows us to initialize the connection without needing to know the
    domain.
2020-07-27 12:43:47 +02:00
JC Brand efb486511c Add another test for registration errors and fix bug 2020-05-12 15:32:52 +02:00
JC Brand 4b270359f6 Use Karma as test runner 2020-04-23 11:55:51 +02:00
JC Brand 7e23adf26f Remove the need for require.js to run tests 2020-04-22 12:10:39 +02:00
JC Brand 4ef5363024 Fix failing tests 2020-04-10 16:59:34 +02:00
JC Brand a7f28cd61d When creating message objects, wait for confirmation from storage
Queue messages and handle them sequentially, each time waiting for promises to
resolve before handling the next message.

Updates #1899, which likely happens because an error message is received
before messages have been fetched.
2020-03-04 15:14:57 +01:00
JC Brand f34cc63d4c Log out before running test
To avoid one test which times out, causing subsequent tests to not be
run (and therefore also time out).
2020-03-03 15:12:20 +01:00
JC Brand 879e165ae5 Refactoring
- Move headless one-on-one chat functionality into converse-chat
- Split converse-headline into converse-headlines and converse-headlines-views
- Add api in `_converse.api.chatboxes` for creating chatboxes
- Add `_converse.api.controlbox.get` method
2019-11-04 15:05:50 +01:00
JC Brand 1fa203c990 Support for IndexedDB. updates #1105
Depend on latest backbone.browserStorage which has support for IndexedDB
via localforage.

Storage operations are now asynchronous and transactional.

Bugs fixed (mostly by waiting for operations to complete):

* Rooms are now fetched asynchronously, so wait before triggering `show`
  or when closing.
* Make sure chat create/update transactions complete before firing events
* Make sure chats and messages have been fetched before creating new ones.
* When doing a `fetch` with `wait: false` on a collection and then
  creating a model in that collection, then once the read
  operation finishes (after creating the model), the collection is emptied again.
* Patch and wait when saving.
  Otherwise we have previously set attributes overriding later ones.
* Make sure api.roomviews.close returns a promise

Test fixes:

* Chats are now asynchronously returned, so we need to use `await`
* Wait for the storage transaction to complete when creating and updating messages
* Wait for all chatboxes to close
    Otherwise we get sessionStorage inconsistencies due to the async nature of localforage.
* Wait for room views to close in spec/chatroom.js

In the process, remove the `closeAllChatBoxes` override in
converse-controlbox by letting the `close` method decide whether it
should be closed or not.
2019-10-30 13:02:23 +01:00
JC Brand 877e07775a Remove need to pass in spies to `initConverse`
They aren't used anymore.
2019-10-11 17:46:13 +02:00
JC Brand 9d77a4ef97 Fixes #129 Add support for XEP-0156.
Only XML is supported for now.
2019-10-11 17:46:13 +02:00
JC Brand a1630b5c1f Replace wait-until-promise with utility method
and bump default timeout

Also let `_converse.api.waitUntil` use it if a function is passed in.
2019-07-11 23:34:27 +02:00
JC Brand 5532a9ec63 Remove jquery from tests 2019-04-08 21:45:09 +02:00
JC Brand 3ce3d661bc Make sure required registration fields have "required" attribute 2019-03-26 14:52:26 +01:00
JC Brand 9f5031c278 Make `converse.initialize` an `async` function
- Combine all test init functions into `initConverse`
- Use `async` functions in more tests
- Replace `var` with `let` and `const` in more tests
- New utils method `toStanza` which converts a string to a Node
2019-02-12 15:34:50 +01:00
JC Brand 36d2db78c4 Use async/await and remove jquery in some tests 2018-11-29 12:37:21 +01:00
JC Brand d341c6a13b Revert "Use getter to lazily create Strophe.Connection"
This reverts commit 7af73c3471.

Doesn't look like the right approach for adding support for XEP-0156.
Work on that will continue in a branch in the meantime.
2018-11-20 17:31:53 +01:00
JC Brand 7af73c3471 Use getter to lazily create Strophe.Connection 2018-11-18 18:05:47 +01:00
JC Brand 9bc8bdf34c Test updates after updating to use latest strophe.js
`toLocaleString` now returns element attributes in alphabetical order
(for better cross-browser consistency).

Also, `toLocaleString` is now used in favor of `outerHTML` because
browsers aren't consistent with one another in their output.
2018-10-03 21:11:20 +02:00
JC Brand bc872ee2cb Fix various failing tests and update Makefile 2018-06-04 11:20:34 +02:00
JC Brand 596082eecc Get tests to run agains the webpack build 2018-06-03 16:40:20 +02:00
JC Brand 59535656b6 Add checkbox to indicate whether this is a trusted device 2018-05-18 15:44:42 +02:00
JC Brand 8bd968a03b Also use the VCard cache for the user's own status 2018-05-08 19:24:50 +02:00
JC Brand 4652385bb4 Remove jQuery from non-tests config 2018-01-04 12:11:03 +00:00
JC Brand 671691353a Use Backbone.NativeView instead of Backbone.View 2018-01-03 20:41:03 +00:00
JC Brand 79080b3569 Routing fixes
* Check if `Backbone.history.start()` has been called before.
* Only call it after routes have been registered.
* Use route for switching between login and register forms
2017-09-28 23:29:37 +02:00
JC Brand 74b91faf9a Use browser-based "constraint validation"
to validate required fields, instead of doing it manually.

All supported browsers have this feature.
2017-09-25 13:55:17 +02:00
JC Brand f0debc61ab Refactor i18n so that only relevant translations are fetched
instead of bundling all translations in the dist file.
2017-09-25 12:49:10 +02:00
JC Brand 7cfe81ea1f Fix failing tests.
Somehow the tests are flaky when the router sets a URL fragment for login or
registration, so I've now added an event handler which does the work without
setting the URL fragment.

The router is still there so that one can manually link to a URL that has the
registration form open. (Issue #828)
2017-09-24 00:30:43 +02:00
JC Brand 694eabfc0e Use promises to determine when to create the controlbox 2017-08-16 13:22:18 +02:00
JC Brand 16d62bf9e4 Fix broken tests due to using ES2015 promises 2017-07-11 17:05:02 +02:00
JC Brand 02e5921415 Fix problem of stuck/hanging tests on TravisCI 2017-06-19 15:05:22 +02:00
JC Brand 0c43e4b87c Upgrade to Jasmine 2.5.3 2017-04-06 11:31:05 +02:00
JC Brand 9fc61d9302 Bugfix. Endless spinner when trying to log in
after rendering the registration form.
2017-03-31 01:54:42 +00:00
JC Brand fe6a9ca748 Merge converse-api and converse-core
Otherwise `require('converse-core')` can be called, exposing the inner converse
object.
2017-02-14 14:35:52 +00:00
JC Brand b7b9711296 Rename the closured converse object to _converse
to indicate that it's private and to differentiate it from the outer "global"
converse object.
2017-02-02 18:34:13 +00:00
JC Brand 4dcb855562 Split API into public and private (plugin only) parts. 2017-02-02 18:30:59 +00:00
JC Brand de07b6a529 No need for two AMD-load cycles. 2016-11-30 12:18:58 +00:00
JC Brand a2f4acdcee All tests suites now updated and isolated. 2016-11-03 13:59:05 +00:00
JC Brand c3456eeede Test fixes.
- Call `_initialize` after tests have run
  Since the tests call `teardDown`, which removes all chatboxes.
- Open controlbox when navigating to panel
2016-10-06 09:00:57 +02:00
JC Brand d2ee62da71 Make sure that there is a valid connection when login API is called
In the process I had to refactor some methods which required the mock
connection of tests to be changed as well.
2016-04-13 15:11:50 +00:00
JC Brand dcd090ff31 Rip out the controlbox code and put it in src/converse-controlbox.js
Also fixed an issue w.r.t the plugin architecture. Previously infinite
recursion would happen when more than one plugin was overriding a method.

Resolved now by using a wrapper function that lazily sets the correct super
method.
2016-02-29 16:40:51 +00:00
JC Brand e835a25184 Add jshint checking and fix errors. 2015-10-25 17:55:18 +00:00
JC Brand 81391ff4a2 Ensure that tests execute with 'en' locale. refs #501 2015-10-12 14:43:20 +00:00
JC Brand 785244f15e Add a styleguide to the documentation.
Also update the contributor guidelines to mention the styleguide.
2015-06-16 00:20:28 +02:00
Guillermo Bonvehí 8934043d79 Submit registration form as xform or legacy
Support to send the registration form as legacy or xform, we
use the same variable form_type that was already being used when
calling render
Added submission tests
2015-04-21 11:05:03 -03:00