1## HEAD 2 3### Features 4- Make string pretty diff user configurable (#273) [eb112ce, 649b44d] 5 6### Fixes 7- Use httputil.DumpRequest to pretty-print unhandled requests (#278) [a4ff0fc, b7d1a52] 8- fix typo floa32 > float32 (#272) [041ae3b, 6e33911] 9- Fix link to documentation on adding your own matchers (#270) [bb2c830, fcebc62] 10- Use setters and getters to avoid race condition (#262) [13057c3, a9c79f1] 11- Avoid sending a signal if the process is not alive (#259) [b8043e5, 4fc1762] 12- Improve message from AssignableToTypeOf when expected value is nil (#281) [9c1fb20] 13 14## 1.3.0 15 16Improvements: 17 18- The `Equal` matcher matches byte slices more performantly. 19- Improved how `MatchError` matches error strings. 20- `MatchXML` ignores the order of xml node attributes. 21- Improve support for XUnit style golang tests. ([#254](https://github.com/onsi/gomega/issues/254)) 22 23Bug Fixes: 24 25- Diff generation now handles multi-byte sequences correctly. 26- Multiple goroutines can now call `gexec.Build` concurrently. 27 28## 1.2.0 29 30Improvements: 31 32- Added `BeSent` which attempts to send a value down a channel and fails if the attempt blocks. Can be paired with `Eventually` to safely send a value down a channel with a timeout. 33- `Ω`, `Expect`, `Eventually`, and `Consistently` now immediately `panic` if there is no registered fail handler. This is always a mistake that can hide failing tests. 34- `Receive()` no longer errors when passed a closed channel, it's perfectly fine to attempt to read from a closed channel so Ω(c).Should(Receive()) always fails and Ω(c).ShoudlNot(Receive()) always passes with a closed channel. 35- Added `HavePrefix` and `HaveSuffix` matchers. 36- `ghttp` can now handle concurrent requests. 37- Added `Succeed` which allows one to write `Ω(MyFunction()).Should(Succeed())`. 38- Improved `ghttp`'s behavior around failing assertions and panics: 39 - If a registered handler makes a failing assertion `ghttp` will return `500`. 40 - If a registered handler panics, `ghttp` will return `500` *and* fail the test. This is new behavior that may cause existing code to break. This code is almost certainly incorrect and creating a false positive. 41- `ghttp` servers can take an `io.Writer`. `ghttp` will write a line to the writer when each request arrives. 42- Added `WithTransform` matcher to allow munging input data before feeding into the relevant matcher 43- Added boolean `And`, `Or`, and `Not` matchers to allow creating composite matchers 44- Added `gbytes.TimeoutCloser`, `gbytes.TimeoutReader`, and `gbytes.TimeoutWriter` - these are convenience wrappers that timeout if the underlying Closer/Reader/Writer does not return within the alloted time. 45- Added `gbytes.BufferReader` - this constructs a `gbytes.Buffer` that asynchronously reads the passed-in `io.Reader` into its buffer. 46 47Bug Fixes: 48- gexec: `session.Wait` now uses `EventuallyWithOffset` to get the right line number in the failure. 49- `ContainElement` no longer bails if a passed-in matcher errors. 50 51## 1.0 (8/2/2014) 52 53No changes. Dropping "beta" from the version number. 54 55## 1.0.0-beta (7/8/2014) 56Breaking Changes: 57 58- Changed OmegaMatcher interface. Instead of having `Match` return failure messages, two new methods `FailureMessage` and `NegatedFailureMessage` are called instead. 59- Moved and renamed OmegaFailHandler to types.GomegaFailHandler and OmegaMatcher to types.GomegaMatcher. Any references to OmegaMatcher in any custom matchers will need to be changed to point to types.GomegaMatcher 60 61New Test-Support Features: 62 63- `ghttp`: supports testing http clients 64 - Provides a flexible fake http server 65 - Provides a collection of chainable http handlers that perform assertions. 66- `gbytes`: supports making ordered assertions against streams of data 67 - Provides a `gbytes.Buffer` 68 - Provides a `Say` matcher to perform ordered assertions against output data 69- `gexec`: supports testing external processes 70 - Provides support for building Go binaries 71 - Wraps and starts `exec.Cmd` commands 72 - Makes it easy to assert against stdout and stderr 73 - Makes it easy to send signals and wait for processes to exit 74 - Provides an `Exit` matcher to assert against exit code. 75 76DSL Changes: 77 78- `Eventually` and `Consistently` can accept `time.Duration` interval and polling inputs. 79- The default timeouts for `Eventually` and `Consistently` are now configurable. 80 81New Matchers: 82 83- `ConsistOf`: order-independent assertion against the elements of an array/slice or keys of a map. 84- `BeTemporally`: like `BeNumerically` but for `time.Time` 85- `HaveKeyWithValue`: asserts a map has a given key with the given value. 86 87Updated Matchers: 88 89- `Receive` matcher can take a matcher as an argument and passes only if the channel under test receives an objet that satisfies the passed-in matcher. 90- Matchers that implement `MatchMayChangeInTheFuture(actual interface{}) bool` can inform `Eventually` and/or `Consistently` when a match has no chance of changing status in the future. For example, `Receive` returns `false` when a channel is closed. 91 92Misc: 93 94- Start using semantic versioning 95- Start maintaining changelog 96 97Major refactor: 98 99- Pull out Gomega's internal to `internal` 100