describe("UserCtrl", function() {
    var scope, ctrl, matrixService, routeParams, $q, $timeout;
    var userId = "@foo:bar";
    var displayName = "Foo";
    var avatarUrl = "avatar.url";
    
    beforeEach(module('matrixWebClient'));

    beforeEach(function() {

        inject(function($rootScope, $injector, $controller, _$q_, _$timeout_) {
            $q = _$q_;
            $timeout = _$timeout_;

            matrixService = {
                config: function() {
                    return {
                        user_id: userId
                    };
                },

                getDisplayName: function(uid) {
                    var d = $q.defer();
                    d.resolve({
                        data: {
                            displayname: displayName
                        }
                    });
                    return d.promise;
                },

                getProfilePictureUrl: function(uid) {
                    var d = $q.defer();
                    d.resolve({
                        data: {
                            avatar_url: avatarUrl
                        }
                    });
                    return d.promise;
                }
            };
            scope = $rootScope.$new();
            routeParams = {
                user_matrix_id: userId
            };
            ctrl = $controller('UserController', {
                '$scope': scope, 
                '$routeParams': routeParams, 
                'matrixService': matrixService
            });
        });
    });

    it('should display your user id', function() {
        expect(scope.user_id).toEqual(userId);
    });
});