Buggy shading on a simple model
The main problem which causes this unexpected result is normals splitted in a wrong way.


In Edit mode with all selected access Specials menu with W and choose Remove Doubles.
With all still selected press Ctrl+N to recalculate normals.
Then in order to get rid of ugly artifacts caused by smooth shading normals should be splitted (see How to smooth shade an object while retaining hard edges?). In Properties Editor > Object data tab in Normals rollout you can see that Autosmooth option is turned on but angle setting is greyed out. See What does it mean when my Angle setting under Auto Smooth greyed out ?.  

In the same tab open Geometry Data rollout; button Clear Custom Split Normals Data is active, so data is  present.



You can use 2 ways: clear custom split normals and set up either Autosmooth angle or Edge Split modifier, or leave custom split normals as they are (e.g. if they should be preserved) and uncheck Autosmooth option.  



See also:


Shading in object mode differ from sculpting mode? 
Editing custom split normals using Normal Edit modifier.