@@ -1314,6 +1314,90 @@ describe('globals', function() {
1314
1314
assert . equal ( Raven . _backoffStart , null ) ; // clock is at 100ms
1315
1315
assert . equal ( Raven . _backoffDuration , 0 ) ;
1316
1316
} ) ;
1317
+ it ( 'should truncate url in breadcrumb' , function ( ) {
1318
+ this . sinon . stub ( Raven , 'isSetup' ) . returns ( true ) ;
1319
+ this . sinon . stub ( Raven , '_makeRequest' ) ;
1320
+ this . sinon . stub ( Raven , '_getHttpData' ) . returns ( {
1321
+ url : 'http://localhost/?a=b' ,
1322
+ headers : { 'User-Agent' : 'lolbrowser' }
1323
+ } ) ;
1324
+
1325
+ Raven . _globalProject = '2' ;
1326
+ Raven . _globalOptions = {
1327
+ logger : 'javascript' ,
1328
+ maxMessageLength : 100
1329
+ } ;
1330
+ Raven . _globalOptions . maxUrlLength = 30 ;
1331
+
1332
+ var longUrl = new Array ( 50 ) . join ( 'a' ) ;
1333
+ var obj = { method : 'POST' , url : 'http://example.org/api/0/auth/' + longUrl } ;
1334
+ Raven . _breadcrumbs = [ { type : 'request' , timestamp : 0.1 , data : obj } ] ;
1335
+
1336
+ Raven . _send ( { message : 'bar' } ) ;
1337
+ assert . deepEqual ( Raven . _makeRequest . lastCall . args [ 0 ] . data , {
1338
+ project : '2' ,
1339
+ logger : 'javascript' ,
1340
+ platform : 'javascript' ,
1341
+ request : {
1342
+ url : 'http://localhost/?a=b' ,
1343
+ headers : {
1344
+ 'User-Agent' : 'lolbrowser'
1345
+ }
1346
+ } ,
1347
+ event_id : 'abc123' ,
1348
+ message : 'bar' ,
1349
+ extra : { 'session:duration' : 100 } ,
1350
+ breadcrumbs : {
1351
+ values : [
1352
+ { type : 'request' , timestamp : 0.1 , data : { method : 'POST' , url : 'http://example.org/api/0/auth/…' } }
1353
+ ]
1354
+ }
1355
+ } ) ;
1356
+ } ) ;
1357
+
1358
+ it ( 'should skip truncating url in breadcrumb if object is frozen' , function ( ) {
1359
+ this . sinon . stub ( Raven , 'isSetup' ) . returns ( true ) ;
1360
+ this . sinon . stub ( Raven , '_makeRequest' ) ;
1361
+ this . sinon . stub ( Raven , '_getHttpData' ) . returns ( {
1362
+ url : 'http://localhost/?a=b' ,
1363
+ headers : { 'User-Agent' : 'lolbrowser' }
1364
+ } ) ;
1365
+
1366
+ Raven . _globalProject = '2' ;
1367
+ Raven . _globalOptions = {
1368
+ logger : 'javascript' ,
1369
+ maxMessageLength : 100
1370
+ } ;
1371
+ Raven . _globalOptions . maxUrlLength = 35 ;
1372
+
1373
+ var longUrl = new Array ( 50 ) . join ( 'a' ) ;
1374
+ var obj = { method : 'POST' , url : 'http://example.org/api/0/auth/' + longUrl } ;
1375
+ Object . freeze ( obj ) ;
1376
+
1377
+ Raven . _breadcrumbs = [ { type : 'request' , timestamp : 0.1 , data : obj } ] ;
1378
+
1379
+ Raven . _send ( { message : 'bar' } ) ;
1380
+ assert . deepEqual ( Raven . _makeRequest . lastCall . args [ 0 ] . data , {
1381
+ project : '2' ,
1382
+ logger : 'javascript' ,
1383
+ platform : 'javascript' ,
1384
+ request : {
1385
+ url : 'http://localhost/?a=b' ,
1386
+ headers : {
1387
+ 'User-Agent' : 'lolbrowser'
1388
+ }
1389
+ } ,
1390
+ event_id : 'abc123' ,
1391
+ message : 'bar' ,
1392
+ extra : { 'session:duration' : 100 } ,
1393
+ breadcrumbs : {
1394
+ values : [
1395
+ { type : 'request' , timestamp : 0.1 , data : { method : 'POST' , url : 'http://example.org/api/0/auth/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' } }
1396
+ ]
1397
+ }
1398
+ } ) ;
1399
+ } ) ;
1400
+
1317
1401
} ) ;
1318
1402
1319
1403
describe ( 'makeRequest' , function ( ) {
@@ -2770,7 +2854,7 @@ describe('Raven (private methods)', function () {
2770
2854
this . clock . tick ( 0 ) ; // Raven initialized at time "0"
2771
2855
Raven = new _Raven ( ) ;
2772
2856
} ) ;
2773
-
2857
+
2774
2858
afterEach ( function ( ) {
2775
2859
this . clock . restore ( ) ;
2776
2860
} ) ;
0 commit comments