lltexturestatsuploader_test.cpp
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:5k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2.  * @file lltexturestatsuploader_test.cpp
  3.  * @author Si
  4.  * @date 2009-05-27
  5.  *
  6.  * $LicenseInfo:firstyear=2006&license=viewergpl$
  7.  * 
  8.  * Copyright (c) 2006-2010, Linden Research, Inc.
  9.  * 
  10.  * Second Life Viewer Source Code
  11.  * The source code in this file ("Source Code") is provided by Linden Lab
  12.  * to you under the terms of the GNU General Public License, version 2.0
  13.  * ("GPL"), unless you have obtained a separate licensing agreement
  14.  * ("Other License"), formally executed by you and Linden Lab.  Terms of
  15.  * the GPL can be found in doc/GPL-license.txt in this distribution, or
  16.  * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
  17.  * 
  18.  * There are special exceptions to the terms and conditions of the GPL as
  19.  * it is applied to this Source Code. View the full text of the exception
  20.  * in the file doc/FLOSS-exception.txt in this software distribution, or
  21.  * online at
  22.  * http://secondlifegrid.net/programs/open_source/licensing/flossexception
  23.  * 
  24.  * By copying, modifying or distributing this software, you acknowledge
  25.  * that you have read and understood your obligations described above,
  26.  * and agree to abide by those obligations.
  27.  * 
  28.  * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
  29.  * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
  30.  * COMPLETENESS OR PERFORMANCE.
  31.  * $/LicenseInfo$
  32.  */
  33. // Precompiled header: almost always required for newview cpp files
  34. #include "../llviewerprecompiledheaders.h"
  35. // Class to test
  36. #include "../lltexturestatsuploader.h"
  37. // Dependencies
  38. // Tut header
  39. #include "../test/lltut.h"
  40. // -------------------------------------------------------------------------------------------
  41. // Stubbing: Declarations required to link and run the class being tested
  42. // Notes: 
  43. // * Add here stubbed implementation of the few classes and methods used in the class to be tested
  44. // * Add as little as possible (let the link errors guide you)
  45. // * Do not make any assumption as to how those classes or methods work (i.e. don't copy/paste code)
  46. // * A simulator for a class can be implemented here. Please comment and document thoroughly.
  47. #include "boost/intrusive_ptr.hpp"
  48. void boost::intrusive_ptr_add_ref(LLCurl::Responder*){}
  49. void boost::intrusive_ptr_release(LLCurl::Responder* p){}
  50. const F32 HTTP_REQUEST_EXPIRY_SECS = 0.0f;
  51. static std::string most_recent_url;
  52. static LLSD most_recent_body;
  53. void LLHTTPClient::post(
  54. const std::string& url,
  55. const LLSD& body,
  56. ResponderPtr,
  57. const LLSD& headers,
  58. const F32 timeout)
  59. {
  60. // set some sensor code
  61. most_recent_url = url;
  62. most_recent_body = body;
  63. return;
  64. }
  65. // End Stubbing
  66. // -------------------------------------------------------------------------------------------
  67. // -------------------------------------------------------------------------------------------
  68. // TUT
  69. // -------------------------------------------------------------------------------------------
  70. namespace tut
  71. {
  72. // Test wrapper declarations
  73. struct texturestatsuploader_test
  74. {
  75. // Constructor and destructor of the test wrapper
  76. texturestatsuploader_test()
  77. {
  78. most_recent_url = "some sort of default text that should never match anything the tests are expecting!";
  79. LLSD blank_llsd;
  80. most_recent_body = blank_llsd;
  81. }
  82. ~texturestatsuploader_test()
  83. {
  84. }
  85. };
  86. // Tut templating thingamagic: test group, object and test instance
  87. typedef test_group<texturestatsuploader_test> texturestatsuploader_t;
  88. typedef texturestatsuploader_t::object texturestatsuploader_object_t;
  89. tut::texturestatsuploader_t tut_texturestatsuploader("texturestatsuploader");
  90. // ---------------------------------------------------------------------------------------
  91. // Test functions
  92. // Notes:
  93. // * Test as many as you possibly can without requiring a full blown simulation of everything
  94. // * The tests are executed in sequence so the test instance state may change between calls
  95. // * Remember that you cannot test private methods with tut
  96. // ---------------------------------------------------------------------------------------
  97. // ---------------------------------------------------------------------------------------
  98. // Test the LLTextureInfo
  99. // ---------------------------------------------------------------------------------------
  100. // Test instantiation
  101. template<> template<>
  102. void texturestatsuploader_object_t::test<1>()
  103. {
  104. LLTextureStatsUploader tsu;
  105. llinfos << &tsu << llendl;
  106. ensure("have we crashed?", true);
  107. }
  108. // does it call out to the provided url if we ask it to?
  109. template<> template<>
  110. void texturestatsuploader_object_t::test<2>()
  111. {
  112. LLTextureStatsUploader tsu;
  113. std::string url = "http://blahblahblah";
  114. LLSD texture_stats;
  115. tsu.uploadStatsToSimulator(url, texture_stats);
  116. ensure_equals("did the right url get called?", most_recent_url, url);
  117. ensure_equals("did the right body get sent?", most_recent_body, texture_stats);
  118. }
  119. // does it not call out to the provided url if we send it an ungranted cap?
  120. template<> template<>
  121. void texturestatsuploader_object_t::test<3>()
  122. {
  123. LLTextureStatsUploader tsu;
  124. // this url left intentionally blank to mirror
  125. // not getting a cap in the caller.
  126. std::string url_for_ungranted_cap = ""; 
  127.   
  128. LLSD texture_stats;
  129. std::string most_recent_url_before_test = most_recent_url;
  130. tsu.uploadStatsToSimulator(url_for_ungranted_cap, texture_stats);
  131. ensure_equals("hopefully no url got called!", most_recent_url, most_recent_url_before_test);
  132. }
  133. // does it call out if the data is empty?
  134. // should it even do that?
  135. }