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