intridea/grape — pull request #210 by adamgotterer (2012-07-22 21:02:29+00:00)
Title: Fix for #body_params causing undefined method `size'

An addition in #205 which adds a `request.body.size` call started causing a 'NoMethodError' exception during "real" non test POST/PUT requests. This error could not be reproduced in a test environment because of the way rack/test wraps request information. During a real life request the request.body type is a Rack::Lint::InputWrapper object. But during a mock scenario a StringIO object. This subtle difference makes it difficult (if not impossible) to reproduce in a test environment without forcing the env to use the InputWrapper object. Changing `request.body.size` to `request.content_length` eliminates the exception and serves the same purpose.

This pull request also cleans up a related duplicate test found in the endpoint spec.