SimulatedResponse constructor

SimulatedResponse(_CoreResponseSimulated core, String sessionCookieName)

Constructor

Implementation

SimulatedResponse(_CoreResponseSimulated core, String sessionCookieName) {
  _status = core.status;

  contentType = core.headers.contentType;

  // Copy cookies from core's cookies (omitting any session cookie)

  assert(sessionId == null);

  for (var c in core.cookies) {
    if (c.name == sessionCookieName) {
      // Session cookie: do not copy it
      if (c.value.isNotEmpty &&
          (c.maxAge == null || 0 < c.maxAge) &&
          (c.expires == null || 1970 < c.expires.year)) {
        // Is setting the session cookie (not deleting it): set the session
        assert(sessionId == null);
        sessionId = c.value;
      } else {
        // Not the session cookie: copy it
        cookieAdd(c);
      }
    }
  }

  // Copy headers from core's headers

  core.headers.forEach((name, values) {
    for (var v in values) {
      headerAdd(name, v);
    }
  });

  // Set the body using one of (but not both) string or bytes

  assert(!(core.bodyStr != null && core.bodyBytes != null), 'both set');
  _bodyStr = core.bodyStr;
  _bodyBytes = core.bodyBytes;
}