Commit Graph

197 Commits

Author SHA1 Message Date
Alex Bramley d4aceddcd7 Test Client creation and ST enable/disable. 2011-11-10 15:06:44 +00:00
Alex Bramley a271cc06f3 Use mock dispatcher for testing event triggering. 2011-11-07 14:53:07 +00:00
Alex Bramley 3feaa7f302 Use a static map of event handlers for internal handlers too. 2011-11-07 13:44:03 +00:00
Alex Bramley aa75e0e0c6 Make enabling/disabling state-tracking easier. Improve constructors. 2011-11-07 13:34:13 +00:00
Alex Bramley 4853024928 Nuke extraneous makefiles, no longer needed. 2011-11-06 06:26:59 +00:00
Alex Bramley caa9429a74 Update README. 2011-11-06 05:22:02 +00:00
Alex Bramley 2bc8238f8e Move state-related handlers to their own file for clarity. 2011-11-06 05:11:49 +00:00
Alex Bramley 85097043cf Epic final commit for nick/chan/logging/testing refactor.
* Brings logging changes to client library.
* Brings state tracker to client library.
* Rewrites all tests to use mock logger and mock state tracker.
* Makes state tracking optional, finally.
* Shaves yaks until they are almost completely bald.
2011-11-06 04:56:46 +00:00
Alex Bramley f128ce84b4 Start of breaking out state tracking into separate package. 2011-10-08 10:42:15 +01:00
Alex Bramley a0020f4e62 Method to initialise tracker memory. 2011-10-08 10:40:58 +01:00
Alex Bramley d072abbb76 Give nicks an awareness of me. 2011-10-07 00:19:31 +01:00
Alex Bramley 7a17ee9eb5 State tracking refactor completer. 2011-10-06 23:54:34 +01:00
Alex Bramley e36caa3a3d Merge branch 'logging' into nickchan-refactor
Conflicts:
	client/nickchan.go

Fix up some inconsistencies in the beginning of the nickchan refactor too.
2011-10-06 22:33:06 +01:00
Alex Bramley 3e1b2c0f81 Turns out gofmt isn't big on spaces sometimes. 2011-09-29 22:58:04 +01:00
Alex Bramley de66051d07 Convert conn.Err into logging.
Also, remove all error-side-effect testing cos it was a bit shit.
First step on the long road to refactoring the nick/chan state tracking
and making everything more testable and mockable with interfaces.
2011-09-29 22:54:54 +01:00
Alex Bramley eb6ac4ce05 Tracking wip. 2011-09-28 20:48:58 +01:00
Alex Bramley c400a2141a Run gofmt over code, it's been a while. 2011-09-12 23:25:09 +01:00
Alex Bramley 18c20080e8 Test handler for 671 replies. 2011-09-12 23:21:40 +01:00
Alex Bramley b0e0be0fe3 Check all nicks against current channel contents for 353 handler. 2011-09-12 23:21:15 +01:00
Alex Bramley 6c1d345f0b Test handler for 353 replies. 2011-09-12 23:14:08 +01:00
Alex Bramley 9d896f2693 Test for 352 RPL_WHOREPLY. 2011-09-11 11:01:28 +01:00
Alex Bramley d4ae3b588d Test for 332 RPL_TOPIC. 2011-09-09 23:27:45 +01:00
Alex Bramley 4008b84db6 Test handler for 324 RPL_CHANNELMODEIS. 2011-09-09 23:24:08 +01:00
Alex Bramley 47ae014c1c Whitespace fix. 2011-09-09 23:04:27 +01:00
Alex Bramley 8ae5fe3b75 Another minor indexing bug :-/ 2011-09-09 23:04:12 +01:00
Alex Bramley ff855691cf Test the 311 RPL_WHOISUSER handler. 2011-09-09 23:03:44 +01:00
Alex Bramley daadb2c96e Test the TOPIC handler. 2011-09-09 23:02:33 +01:00
Alex Bramley d15d1074f5 Fix bug found by MODE handler test. 2011-09-09 22:33:08 +01:00
Alex Bramley c5146e93f6 Add MODE handler test. These are starting to feel clunky. 2011-09-09 22:32:55 +01:00
Alex Bramley df893eb6d0 QUIT handler test. 2011-08-31 22:55:56 +01:00
Alex Bramley b306650af5 Tests for the KICK handler. 2011-08-30 23:15:54 +01:00
Alex Bramley 788c69aaa8 Fix same logic bug in KICK handler. 2011-08-30 23:08:10 +01:00
Alex Bramley d74fd18d3d Fixed logic bug, but it's a bit ugly :-/ 2011-08-24 14:39:27 +01:00
Alex Bramley 4c0f62666d Test for h_PART -- exposed a logic bug :-/ 2011-08-24 14:34:11 +01:00
Alex Bramley 52e74b3f1a Rewrite JOIN handler test to avoid re-testing all the state tracking logic repeatedly. 2011-08-24 13:58:00 +01:00
Alex Bramley c5e13b8b12 Make NICK handler test a little more accurate. 2011-08-24 13:58:00 +01:00
Alex Bramley cf8ab830f7 Move some basic assertions about initial state into setUp(). 2011-08-24 13:58:00 +01:00
Alex Bramley 389f5247f5 Helpers for testing whether Conn errors are triggered. 2011-08-24 13:58:00 +01:00
Alex Bramley 6815c19bb3 Start of JOIN test. Seems like the wrong approach. 2011-08-24 12:46:21 +01:00
Alex Bramley b8c3f42252 Better line ending handling in MockNetConn. 2011-08-24 12:45:32 +01:00
Alex Bramley 83da879ad3 Add tearDown() to all tests. 2011-08-23 11:06:06 +01:00
Alex Bramley 8fc23d5c17 Test CTCP handler. 2011-08-23 11:03:59 +01:00
Alex Bramley 7d9b8c3099 Add tests for explicit and implicit (via EOF) shutdown; fix bug ;-) 2011-08-23 10:53:52 +01:00
Alex Bramley 770c5eb5ac Use ExpectNothing() to make sure handlers don't generate unexpected output. 2011-08-23 10:52:16 +01:00
Alex Bramley 5ff77fc2f9 Add mock dispatcher factory that tests an event fired; use it in Test001(). 2011-08-23 10:50:43 +01:00
Alex Bramley 59b18b038b MockNetConn: Add ExpectNothing() helper. 2011-08-23 10:44:14 +01:00
Alex Bramley bd388db1cc MockNetConn: Use correct os.Errors in Read/Write. 2011-08-23 10:43:48 +01:00
Alex Bramley 020730aca1 MockNetConn: Wrap all channel reads in selects; send EOF on Close(); kill goroutines correctly. 2011-08-23 10:42:54 +01:00
Alex Bramley b04196327a Begin testing event handlers. 2011-08-22 23:24:05 +01:00
Alex Bramley 4e7f272b3f Mock dispatcher for testing. 2011-08-22 23:23:29 +01:00
Alex Bramley 0d7d875b9f Add Send method for mockNetConn, and make Read/Write return errors when closed. 2011-08-22 23:22:46 +01:00
Alex Bramley 48ad9bfa4a Line parsing needs to handle CTCPREPLY too. 2011-08-22 23:21:30 +01:00
Alex Bramley f3a2cf6fa6 Make connected externally accessible, per issues/8. 2011-08-22 17:09:48 +01:00
Alex Bramley fb91caeccf Fix comment for Conn struct. 2011-08-21 13:57:47 +01:00
Alex Bramley 820f0cb14b Test all client commands. 2011-08-21 13:38:51 +01:00
Alex Bramley 425557e8bd Create a simple mock that implements net.Conn. 2011-08-21 13:38:12 +01:00
Alex Bramley 045679dd42 Split Connect() into two pieces for testing purposes. 2011-08-21 13:31:18 +01:00
Alex Bramley a95da1cb2c Enforce upper-case CTCP commands. 2011-08-21 13:22:26 +01:00
Alex Bramley b32e8d050f Gofix for r59. 2011-08-03 08:04:01 +01:00
Alex Bramley cd53356ca6 Merge branch 'master' into release 2011-08-03 08:03:20 +01:00
Alex Bramley 1a4ce96e00 Gofix for r59. 2011-08-03 08:03:08 +01:00
Alex Bramley 2efe298c75 Make IRCHandler the function type, make NewHandler the factory. 2011-07-30 19:42:10 +01:00
Alex Bramley 43a2bf08f1 Make IRCHandler the function type, make NewHandler the factory. 2011-07-30 19:41:50 +01:00
Alex Bramley 1d82af0080 Impolite to break the 'IRC event provides Conn, Line' contract. 2011-07-30 19:35:08 +01:00
Alex Bramley 9c94b0b3e0 Impolite to break the 'IRC event provides Conn, Line' contract. 2011-07-30 19:34:55 +01:00
Alex Bramley 1849d886d4 Revert "Merge branch 'master' into release"
This reverts commit 2528d13314, reversing
changes made to f0a9246c7a.
2011-07-29 23:14:21 +01:00
Alex Bramley 2f31ca5dcf Oh, god damnit. Should at least *try* to build things to make sure they work. 2011-07-28 18:02:02 +01:00
Alex Bramley 364c6da7ae Add a function to make a copy of a *Line (bar the Time field). 2011-07-28 17:56:14 +01:00
Alex Bramley 47d4587ca3 Revert "Weekly commits shouldn't be on release branch"
This reverts commit 934ee04fcf.
2011-07-28 12:14:51 +01:00
Alex Bramley 8fed417dce Oh wait event isn't local. 2011-07-28 00:41:47 +01:00
Alex Bramley 303d3724e2 Break out unboxing code; pass conn/line objects for other events. 2011-07-28 00:24:07 +01:00
Alex Bramley 8e6de2f3c7 Add an overridable Dispatcher to Conn, and use that to dispatch events. 2011-07-27 21:40:56 +01:00
Alex Bramley 900afb5c48 Put nil checking in correct place. 2011-07-27 21:15:09 +01:00
Alex Bramley 33a5bff35b Move line parsing done in dispatchEvent into ParseLine(). 2011-07-27 21:10:37 +01:00
Alex Bramley 5e814babc7 Move to using the new event registry internally. 2011-07-27 21:10:01 +01:00
Alex Bramley 934ee04fcf Weekly commits shouldn't be on release branch 2011-07-26 20:25:14 +01:00
Alex Bramley d2cfe6eb6f Tidy up old-style slice syntax, and use string methods for CTCP parsing. 2011-07-25 23:02:57 +01:00
Alex Bramley 65ae4394fc Update for weekly of 2011-07-16; changes to string.Split(). 2011-07-25 22:27:52 +01:00
Alex Bramley ddd913547c Add field in Conn to allow external state to be propagated to event handlers. 2011-07-25 22:27:09 +01:00
Alex Bramley c3715be829 Use second constant in SetTimeout(). 2011-07-22 01:20:25 +01:00
Alex Bramley 07d5c0676e Fix compile error when NewNick() is called before initialise(). 2011-07-22 01:20:07 +01:00
Alex Bramley 6634869fe6 Use connected bool properly to ensure shutdown() can't be called twice. 2011-07-22 01:17:35 +01:00
Alex Bramley 291132cab5 Refactor recv() since we needed to rewrite send(). 2011-07-22 01:11:15 +01:00
Alex Bramley 0200b741dc Fix for issues/6 (2/2): Move to using control channels and select. 2011-07-22 01:08:42 +01:00
Alex Bramley eb51558009 Fix for issues/6 (1/2): Don't close channels when disconnected. 2011-07-21 23:03:11 +01:00
Alex Bramley a5a4f989ac Update SSL connectivity to use tls.Dial now it supports a config arg. 2011-07-21 22:00:45 +01:00
Alex Bramley 9748f9c47e Oops, timeouts are int64 nanoseconds. 2011-07-21 21:59:01 +01:00
Alex Bramley 5027646478 gofix run 2011-07-18 09:14:58 +01:00
Alex Bramley 83b482f8ce Make socket timeouts a configurable thingy. 2011-07-17 13:48:12 +01:00
raylu a19bce5998 Make a timeout so that Conn.Err closes when the connection is lost 2011-07-17 13:35:15 +01:00
Alex Bramley 2a3ff18d73 Properly fix formatting. Bleh bleh bleh. 2010-12-20 22:14:22 +00:00
Alex Bramley 1d587cd3fc Helps if you add the damn element to the struct... 2010-12-19 15:22:40 +00:00
Alex Bramley bea2395160 Make timestamp format twiddleable; cosmetic re-arrangement of *Conn struct. 2010-11-23 22:18:08 +00:00
Graham Lyon 623247c995 Generalise timestamp code and default to using time.LocalTime 2010-11-23 22:08:25 +00:00
Alex Bramley 08b7d63c27 Refactor to remove line.Text and use line.Args[-1] instead. 2010-11-23 22:07:21 +00:00
Graham Lyon 8ad6e67467 Added timestamps to irc.Line and debug output 2010-11-23 20:22:35 +00:00
Alex Bramley bedbfc2899 Move irc/ to client/ and set up for goinstall. 2010-11-21 19:53:14 +00:00