define([ "jquery", "js/spec/create_sinon", "URI", "js/views/paging", "js/views/paging_header", "js/views/paging_footer", "js/models/asset", "js/collections/asset" ], function ($, create_sinon, URI, PagingView, PagingHeader, PagingFooter, AssetModel, AssetCollection) { var createMockAsset = function(index) { var id = 'asset_' + index; return { id: id, display_name: id, url: id }; }; var mockFirstPage = { assets: [ createMockAsset(1), createMockAsset(2), createMockAsset(3) ], pageSize: 3, totalCount: 4, page: 0, start: 0, end: 2 }; var mockSecondPage = { assets: [ createMockAsset(4) ], pageSize: 3, totalCount: 4, page: 1, start: 3, end: 4 }; var mockEmptyPage = { assets: [], pageSize: 3, totalCount: 0, page: 0, start: 0, end: 0 }; var respondWithMockAssets = function(requests) { var requestIndex = requests.length - 1; var request = requests[requestIndex]; var url = new URI(request.url); var queryParameters = url.query(true); // Returns an object with each query parameter stored as a value var page = queryParameters.page; var response = page === "0" ? mockFirstPage : mockSecondPage; create_sinon.respondWithJson(requests, response, requestIndex); }; var MockPagingView = PagingView.extend({ renderPageItems: function() {}, initialize : function() { this.registerSortableColumn('name-col', 'Name', 'name', 'asc'); this.registerSortableColumn('date-col', 'Date', 'date', 'desc'); this.setInitialSortColumn('date-col'); } }); describe("Paging", function() { var pagingView; beforeEach(function () { var assets = new AssetCollection(); assets.url = "assets_url"; var feedbackTpl = readFixtures('system-feedback.underscore'); setFixtures($("